如何在 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 数组?的主要内容,如果未能解决你的问题,请参考以下文章