1

我在猫鼬(MongoDb)中有这样的文件:

{
  begin: Date,
  end: Date
}

我想做的就是:

  1. 选择所有文件end == null
  2. 然后使用end =“开始增加 10 天”更新它们

如何在一次更新中完成?

4

2 回答 2

1

现在,您无法在update(). 相反,您必须按照此答案中的描述遍历文档。在您的情况下,它看起来更像这样:

db.docs.find({end:null}).forEach(
  function(doc) {
    doc.end = doc.begin + 10;
    db.docs.save(doc);
  }
)

这是 Mongo shell 的语法——您可能需要根据 API对 Mongoose 进行一些更改。

于 2013-09-17T18:31:32.037 回答
1

此查询选择 end = null 的所有文档并使用新日期更新它 Collection.update({end:null}, {$set: {end:'new_date'}},{ multi: true });

于 2013-09-04T14:44:33.503 回答