如何在 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 数组

如何在 mongoose 中使用数字键

如何使用 Mongoose 在 mongoDB 中填充 3 个集合

如何使用 mongoose 从 mongodb 中选择值

如何在 Meteor 中使用 Mongoose?