在Mongoose中更新依赖的date字段

我在Mongoose(MongoDb)中有这样的文档:

{ begin: Date, end: Date } 

我想要做的是:

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

如何在一次更新中完成?

现在,您无法在update()引用文档的当前属性。 相反,你将不得不迭代通过这个答案中描述的文档。 在你的情况下,它会看起来更像这样:

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

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

该查询select所有具有end = null的文档,并使用新dateCollection.update({end:null}, {$set: {end:'new_date'}},{ multi: true });