mongodb按日期最接近特定小时/分钟的日期汇总文档

时间:2017-07-19 19:05:02

标签: node.js mongodb aggregation-framework

我的mongodb中有文档,这些文档有event字段 - 这个fild类型是date。年,月,日无关紧要,仅指白天的时间。我希望cron脚本每天都能从mongodb汇总文件和event(日期类型)字段,最近10分钟(到脚本调用日期)。如何正确实施?

1 个答案:

答案 0 :(得分:1)

db.mytable.find(
    {
        "event": {
            $gt: new Date(new Date().getTime() - (10 * 60 * 1000))
        }
    })

此查询将查找具有"event"属性且在过去10分钟内具有值的所有文档。不带参数的new Date()返回Date代表"现在"。我们从那里拉出数字纪元时间(以毫秒为单位)并减去10分钟。更具体地说,我们减去(每分钟10分钟* 60秒*每秒1000毫秒),以便我们转换为正确的单位。然后我们使用该值构造另一个new Date(...),这是进入$gt(大于)过滤条件的那个。

您提到需要"聚合"。如果是这样,那么同样的查询也可以在您需要的任何Aggregation Pipeline内使用。