从猫鼬模式中的数组中删除一个对象

时间:2018-12-06 18:46:06

标签: node.js mongodb mongoose

我在从猫鼬模式中的数组中删除对象时遇到问题。 正如我在mongodb文档上看到的那样,我正在使用

User.updateMany({}, {
   $pull: { "events": req.params.id} 
});

但是它不起作用。模式包含:

const UserSchema = new Schema({
email:                  { type: String, required: true },
...
date:                   { type: Date, default: Date.now },
events:                 [{ type: Schema.Types.ObjectId, ref:'events'}]
});

我尝试使用

.then( events => { events.save() }

它可以工作,但是我当然收到一个错误。 谢谢

2 个答案:

答案 0 :(得分:0)

如果要更新多个文档,则还应使用multi:true选项。

 User.update({}, {
   $pull: { "events": req.params.id} 
}, {multi : true});

答案 1 :(得分:0)

非常感谢您的回复,但仍然无法正常工作。 我在互联网上搜索,只有使用update()才需要多个文档,但是我使用的是unpdateMany(),其中包括multi选项。