鉴于以下架构,我想编写一个MongoDB方案来查找持续时间超过一年的所有方案。即(开始 - 结束)> 1年。
我不确定我是否可以在mongodb query (start - end) > 1 year.
{
"update" : ISODate("2017-09-26T15:22:13.172Z"),
"create" : ISODate("2017-09-26T15:22:13.172Z"),
"scheme" : {
"since" : ISODate("2017-09-26T15:22:13.172Z"),
"startDate": ISODate("2017-09-26T15:22:13.172Z"),
"endDate": ISODate("2018-09-26T15:22:13.172Z"),
},
}
答案 0 :(得分:0)
您可以使用减法聚合:
db.yourcollection.aggregate(
[{
$project : { dateDifference: { $subtract: [ "$scheme.endDate", "$scheme.endDate" ] }},
$match : { "$dateDifference" : { $gt : 31536000000 } }
}]);
(* 31536000000 =每年毫秒数)
您可以使用另一个$项目在匹配的文档中输出您需要的任何字段。