簡體   English   中英

通過在body,mongoose / mongodb中提供文檔來更新多個文檔

[英]Update multiple documents by providing documents in body, mongoose/mongodb

我需要通過在正文中提供幾個文檔來更新它們。 我無法查詢它們,必須提供它們。

例:

 var persons = [
    {id: 1, name'Joe', active: false}, 
    {id:2, name:'Jane', active: false})
];

這個數據在正文中提供,我想將active屬性設置為false。

exports.setActivePropertyOnPersons = function(input,callback){
  for(var i = 0;i<input.body.length;i++){
    mongoose.model('person').findOne({id:input.body[i].id}, function(err, person){
      person.active = false;
      person.save();
    })
  }
  callback.send(200)
};

這段代碼感覺不錯。 有沒有更好的查詢來做到這一點? 我在文檔中找不到任何內容。

嘗試使用update命令和“ $ in ”運算符:

var ids= [];
for (var i=0 i<input.body.length; ++i) {
    ids.push(input.body[i].id);
}

mongoose.model('person').update( {id : {"$in":ids}}, {active:false} , {multi: true} , function(err,docs) { ... });

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM