[英]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.