Node.js MongoDB - 如何使用Mongoose更新多个文档?

时间:2017-04-25 14:14:08

标签: node.js mongodb mongoose mongoose-schema

我有一个users集合,每个user都有多个联系人。当user删除其帐户时,我希望该用户的ID将从该用户所连接的所有用户的contacts数组中删除。我尝试了这个Model.Update查询,但它不起作用。到目前为止,这是我的代码:

                User.update({'userId':{ $in: userIds }, 
                        $pullAll: {'contacts': [myId] },'multi': true 
                    },function(err, count) {
                        if(err){
                            console.log(err);
                        }else{
                            console.log(count);
                        } 
                    });

2 个答案:

答案 0 :(得分:4)

更新文档和multi应作为单独的参数传递:

User.update({
  userId : { $in : userIds }        // conditions
}, {
  $pullAll : { contacts : [myId] }  // document
}, {
  multi : true                      // options
}, function(err, count) {
  if (err) {
    console.log(err);
  } else {
    console.log(count);
  }
});

文档here

答案 1 :(得分:0)

可以更新多个条件的多个文档

Model.update({
    _id : { $in : ids}        // conditions
}, {
    $set: {deletion_indicator: constants.N} // document
}, {
    multi : true                      // options
}, function(err, result) {
    if (err) {
        console.log(err);
    } else {
        console.log(result);
    }
});