Mongoose更新以前获取的集合

时间:2014-01-01 02:37:29

标签: javascript node.js mongodb mongoose

我想更新一个集合。 Docs似乎对此不清楚。

我想知道如何实现以下目标:

Order.find({ _id: { $in: ids }}).exec(function(err, items, count) {
  // Following gives error - same with save()
  items.update({ status: 'processed'}, function(err, docs) {

  });
});

我知道如何批量保存:

Model.update({ _id: id }, { $set: { size: 'large' }}, { multi: true }, callback);

但这需要再次设置我的查询。

我也试过了:

Order.collection.update(items...

但是这会引发最大调用堆栈错误。

1 个答案:

答案 0 :(得分:0)

mongoosemodel.find(callback)中,通过回调返回Array Document。您可以在save上致电Document,但不能在Array上致电for loop。因此,您可以在forEach上使用Array Order .find({ _id: { $in: ids}}) .exec(function(err, items, count) { items.forEach(function (it) { it.save(function () { console.log('you have saved ', it) }); }) });

{{1}}