我正在运行汇总查询,经过一些预测后,我最终得到的文档看起来像是
{ _id: 561bed08f8f068cd237a3dc1,
updateDate: Mon Oct 12 2015 11:25:28 GMT-0600 (MDT),
manager: 561bdd37f8f068cd237a3da2,
viewDate: Mon Oct 26 2015 09:02:57 GMT-0600 (MDT) }
请注意,这些日期是控制台格式的输出,当使用mongohub进行检查时,日期看起来像new Date(<timestamp>)
。
我想匹配updateDate
大于viewDate
的文档,所以我有这样的匹配:
$match: {
updateDate: { "$gt": new Date("$viewDate") }
}
但是,它返回上面的文档,updateDate
在12日,viewDate
在26日。
我尝试了一些变体,例如有new Date()
和没有<sessionState customProvider="Foo" mode="Custom" timeout="90">
<providers>
<add name="FooProvider" type="Redis"/>
</providers>
</sessionState>
。
答案 0 :(得分:1)
您无法在此处使用$match
运算符。您需要使用$redact
运算符。
db.collection.aggregate([
{ "$redact": {
"$cond": [
{ "$gt": ["$updateDate", "$viewDate"] },
"$$KEEP",
"$$PRUNE"
]
}}
])