【问题标题】:mongodb aggregate documents by dates nearest to specific hour/minute in daymongodb按最接近一天中特定小时/分钟的日期聚合文档
【发布时间】:2017-12-25 05:28:00
【问题描述】:

我的 mongodb 中有文档,这些文档有 event 字段 - 此字段类型为 date。年、月、日,无所谓,只表示一天中的时间。我希望 cron 脚本每天都从 mongodb 中聚合带有 event (输入日期)字段的文档在最近 10 分钟内(到脚本调用日期)。如何正确实施?

【问题讨论】:

    标签: node.js mongodb aggregation-framework


    【解决方案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 中使用。

    【讨论】:

    猜你喜欢
    • 2020-05-04
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    • 2021-10-26
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 2016-07-16
    相关资源
    最近更新 更多