我的mongodb中有文档,此文档的event字段-此fild类型为date。年,月,日无所谓,仅表示白天的时间。我希望cron脚本每天都可以从mongodb中汇总带有event(键入日期)字段的文档,该文档应在最近的10分钟内(到脚本调用日期)。如何以正确的方式实施它?

最佳答案

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中使用同一查询。

关于node.js - mongodb按最接近特定小时/分钟的日期汇总文档,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45199073/

10-14 19:40