如何使用多个_id更新集合?

时间:2017-04-14 14:58:11

标签: mongodb meteor mongodb-query

我正在尝试根据多个 _id 更新集合。

我通过 Session.get()以数组格式接收 _id ,如下所示:

 var selectedID = Session.get('selectedItemIDSet');

 console.log("selectedID array contents are: "+selectedID); 

上面的代码确保selectedID数组存在并产生:

selectedID数组内容为:LZJKA8S3wYNwHakzE,ikrbCDuttHrwkEcuv

以下查询:

buyList.find({_id:{ "$in": selectedID} }).fetch(); 

成功地生了两个物体!

现在我遇到问题,如何用这两个 _id

更新集合?

我尝试使用以下代码:

var PostedArray = [{PostedBy: Meteor.user()._id }];
buyList.update(_id: selectedID, {$set: {wishListArray: PostedArray} });

...但收到错误消息:未捕获错误:Mongo选择器无法成为数组。(...)

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

update中使用与find +相同的选择器+指定multi: true选项:

buyList.update({ // selector
  _id: {
    "$in": selectedID
  }
}, { // modifier
  $set: {
    wishListArray: PostedArray
  }
}, { // options
  multi: true
});

请注意,您的2个文档将使用相同的修饰符进行更新。