Mongoose:从一系列引用中更新和$ pull

时间:2015-07-07 18:38:51

标签: node.js mongodb express mongoose

我的用户模型包括:

{_id: "GenericMongoId",
 friends: [{type: Schema.ObjectId, ref:'User'}]
}

我正在创建一个函数,在删除用户之后,所有用户朋友数组中对该用户的所有引用也会被删除。

User.findById(req.params.id, function (err, user) {
   user.remove(function(err) {
       User.update(({friends: req.params.id}),{$pull: {friends:req.params.id}},    function(err, data){
      console.log(err, data)...

当我运行该函数并传入id时,由于某种原因,它似乎只删除了一个朋友引用。我想我错过了什么,但我的谷歌搜索并没有找到它。

2 个答案:

答案 0 :(得分:1)

Duh,只需添加多选项

即可
User.update({friends: req.params.id},
{$pull: {friends:req.params.id}},{multi:true}...

答案 1 :(得分:0)

根据Mongoose文档,findById通过它的id搜索单个文档。

  

按ID查找单个文档。

http://mongoosejs.com/docs/api.html#model_Model.findById

您可以使用Model.update获得所需的结果。