如何在带有 ObjectId 数组的 Mongoose 中使用 $addToSet?
How to use $addToSet in Mongoose with array of ObjectId?
在 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);
你的模式是什么,如果你在你的模式中定义了 roleIds 元素,你必须使用 1
在 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);
你的模式是什么,如果你在你的模式中定义了 roleIds 元素,你必须使用 1