如何在 Mongoose 中使用 $addToSet 和 ObjectId 数组?
Posted
技术标签:
【中文标题】如何在 Mongoose 中使用 $addToSet 和 ObjectId 数组?【英文标题】:How to use $addToSet in Mongoose with array of ObjectId? 【发布时间】:2021-11-04 16:42:45 【问题描述】:在 MongoDB 集合中,我只需要为文档的数组字段添加唯一 ID。我正在使用 Mongoose 的 findByIdAndUpdate。我可以将值作为 id 传递,还是需要在更新正文中将值作为 ObjectId() 传递。 应该是 1 还是 2?
1.
await User.findByIdAndUpdate(userId, $addToSet: roleIds: roleId )
await User.findByIdAndUpdate(userId, $addToSet: roleIds: mongoose.Types.ObjectId(roleId) )
架构如下:
const mongoose = require("mongoose");
const UserSchema = new mongoose.Schema(
roleIds: [
type: mongoose.Schema.Types.ObjectId,
ref: "Role",
,
],
);
module.exports = mongoose.model("User", UserSchema);
【问题讨论】:
【参考方案1】:你的架构是什么,如果你在架构中定义了 roleIds 元素,你必须使用1
【讨论】:
向问题添加了架构 根据使用模式使用1以上是关于如何在 Mongoose 中使用 $addToSet 和 ObjectId 数组?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 typescript 中使用 mongoose 在 mongodb 中插入数据?
如何使用 Mongoose 在 MongoDB 中插入 JSON 数组