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()
或运算符来完成它,但我认为它并没有得到充分的优化,坦率地说,比它的价值更麻烦。