Mongoose:更新时覆盖数组 属性
Mongoose: Overwriting array property on update
如何根据作为源的给定数组覆盖文档的数组 属性?
架构:
var postSchema = new mongoose.Schema({
title: { type: String, required: true, index: { unique: true } },
content: { type: String },
tags: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Tag' }]
});
我现在有一个包含标签对象 ID 的数组,我想覆盖标签 属性。我现在遇到的问题是它添加了新标签,但不会删除不在源数组中的标签。
我目前正在使用 findOneAndUpdate 执行更新,如下所示:
// Pseudo code example
Post.findOneAndUpdate({ _id: id }, { tags: ["id1...", "id2..."], {}, cb);
你试过 $set 运算符吗?
Post.findOneAndUpdate({ _id: id }, { $set: {tags: ["id1...", "id2..."]}, {}, cb);
如何根据作为源的给定数组覆盖文档的数组 属性?
架构:
var postSchema = new mongoose.Schema({
title: { type: String, required: true, index: { unique: true } },
content: { type: String },
tags: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Tag' }]
});
我现在有一个包含标签对象 ID 的数组,我想覆盖标签 属性。我现在遇到的问题是它添加了新标签,但不会删除不在源数组中的标签。
我目前正在使用 findOneAndUpdate 执行更新,如下所示:
// Pseudo code example
Post.findOneAndUpdate({ _id: id }, { tags: ["id1...", "id2..."], {}, cb);
你试过 $set 运算符吗?
Post.findOneAndUpdate({ _id: id }, { $set: {tags: ["id1...", "id2..."]}, {}, cb);