Mongodb 如何将一个日期字段与另一个日期字段加上增量值进行比较?

Mongodb 如何将一个日期字段与另一个日期字段加上增量值进行比较?,mongodb,mongodb-query,Mongodb,Mongodb Query,我有以下文件: { "_id" : BinData(0, "RUBR58qePxvfGqR7WjpkiQ=="), "creation_date" : ISODate("2020-02-05T18:30:14.152+0000"), "retention" : NumberInt(24) } 我想选择创建日期+保留时间

我有以下文件:

{ 
    "_id" : BinData(0, "RUBR58qePxvfGqR7WjpkiQ=="), 
    "creation_date" : ISODate("2020-02-05T18:30:14.152+0000"), 
    "retention" : NumberInt(24)
}
我想选择
创建日期+保留时间


我该怎么做呢?

我认为这个聚合管道应该可以做到:

[
  {
    $redact: {
      $cond: [
        {
          $gt: [
            {
              $toDate: {
                $sum: [
                  {
                    $toLong: "$creation_date"
                  },
                  "$retention"
                ]
              }
            },
            new Date()
          ]
        },
        "$$PRUNE",
        "$$KEEP"
      ]
    }
  }
]

如果没有聚合管道,有可能做到吗?@loki我不这么认为。为了实现给定的条件,您必须能够从
new Date()
中减去
$retention
,或者
sum
将其减去
$creation\u Date
,并且
find()
不适用于这些操作。@loki当然,您仍然可以使用
forEach()
或运算符来完成它,但我认为它并没有得到充分的优化,坦率地说,比它的价值更麻烦。