Mongoose更新多个文件

时间:2014-12-20 16:25:25

标签: javascript node.js mongodb mongoose insert-update

实际上我正在使用 mongoDB ,并且我能够使用单个ObjectID更新文档,所以现在我想对具有不同 ObjectID 的多个文档执行更新,我做了大量搜索,了解 {multi:true} 将有助于更新多个文档。 我们说我有

var uid = {'Userid': ObjectId(..)};
var id = {'Newid': Object(..)};

现在我想对这些不同的文档执行更新不同的ObjectId' 的总 separatley ,到目前为止我试过考虑" xyz" " abc" 数组在Schema中仅用于演示

var update_uid = {$push:{'xyz': some_id}};
var update_id = {$push:{'abc': some_other_id}};

Test.update(uid,id,update_uid,update_id,{multi:true},function(){..});

这是错误的我知道,我提到它的记录以防万一,任何帮助和建议将不胜感激

1 个答案:

答案 0 :(得分:1)

如果您想要匹配多个ID,则可以使用keywork $in来检查阵列中是否存在任何匹配项。既然您还要检查多个属性,则可以使用$or关键字,如果数组中的任何一个对象与数据库中的文档匹配,则会找到匹配项。

var userIds = [{'Userid':ObjectId(..)}, {'Userid':ObjectId(..)}];
var newIds = [{'Newid': Object(..)}, {'Newid': Object(..)}];

var query = {
  $or: [{$in: userIds}, {$in: newIds}]
}