【问题标题】:Update dependent Date field in Mongoose更新 Mongoose 中的依赖日期字段
【发布时间】:2013-09-18 02:31:32
【问题描述】:

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

{
  begin: Date,
  end: Date
}

我想做的就是:

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

如何在一次更新中完成?

【问题讨论】:

    标签: javascript node.js mongodb mongoose


    【解决方案1】:

    目前,您无法在 update() 中引用文档的当前属性。相反,您必须遍历文档as described in this answer。在你的情况下,它看起来更像这样:

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

    这是 Mongo shell 的语法——您可能需要对 Mongoose 进行一些更改,as per the API

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • new_date 必须取决于每个文档,即每个更新的文档通常都不同
      猜你喜欢
      • 1970-01-01
      • 2020-04-04
      • 2018-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多