通过提供身体文件,mongoose/ mongodb更新多个文件
我需要在正文中提供几个文件。 我不能查询他们,他们必须提供。
例:
var persons = [ {id: 1, name'Joe', active: false}, {id:2, name:'Jane', active: false}) ];
这些数据在正文中提供,我想将活动属性设置为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) };
这段代码感觉不好。 有没有更好的查询来做到这一点? 我没有在文档中find任何内容。
尝试使用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) { ... });
希望这可以帮助