我有一个 mongodb 集合,其中的项目有 create_time 和 delete_time field.I 想要聚合

I got a mongodb collection which items has create_time and delete_time field.I want a Aggregation

我想要聚合。(或者聚合可以解决我的问题吗?)

例如:

有一个时间戳,如果一个项目create_time小于时间戳而delete_time大于时间戳,则计数为1,循环所有项目,我可以在时间戳中得到计数, 一系列计数是我需要的。

这个过程在我的应用程序中太慢了。

mongodb 聚合可以帮助我吗?谢谢

如果我没理解错的话,这就是查询

db.collection.aggregate([{ $project:{cmp:{$and: [{$lt:["$create_time",ISODate("2016-04-24T13:10:09.518Z")]}, {$gt:["$delete_time",ISODate("2016-04-25T13:10:09.518Z")]}] } } },{$match:{cmp:true}},{$group:{_id:"$cmp",count:{$sum:1}}}])

这个基本上会给出 { "_id" : true, "count" : 2 } 的输出。 其中 count 是满足您指定条件的文档数。将 ISODate("xxxx") 替换为您的 ISO 日期。 如果您还想要不满足查询的文档数量,请删除管道中的匹配对象。