【问题标题】:MongoDB : request to get the first record for each hourMongoDB:请求获取每小时的第一条记录
【发布时间】:2018-02-16 13:59:51
【问题描述】:

在 MongoDB 中,我想做一个每小时的统计数据。 为此,我将搜索时间戳在 00:00 和 00:05、01:00 和 01:05 等之间的所有文档。 (数据每 5 分钟导入一次)

这是存储文档的示例。时间戳是一个 UNIX 时间戳(没有毫秒)

  {
        "_id" : ObjectId("5a6606355bfe62086d368df1"),
        "timestamp" : 1511492352,
        "value" : 2.0
    },
    {
        "_id" : ObjectId("5a6606355bfe62086d368e20"),
        "timestamp" : 1515556761,
        "value" : 3.0
    },

我当前的查询看起来像这样,但它不起作用

.find({new Date(timestamp*1000).getMinutes():{ $lt: 5 }} )

请帮我找到正确的查询

【问题讨论】:

    标签: javascript json mongodb mongodb-query


    【解决方案1】:

    好的,我找到了语法:

    .find("new Date(this.timestamp*1000).getMinutes() < 5")
    

    【讨论】:

    • 顺便说一句,这样做会使查询非常慢。解决方案是创建一个特定的集合并在其中准确填充您想要的数据,这将加快集合的读取速度,因为没有对每个文档进行评估的奇异“发现”。
    猜你喜欢
    • 2019-06-23
    • 1970-01-01
    • 2021-08-31
    • 2014-08-29
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    相关资源
    最近更新 更多