【问题标题】:How to access minutes of isodate field mongodb如何访问isodate字段mongodb的分钟
【发布时间】:2017-10-23 10:40:06
【问题描述】:

我有一个 mongodb 数据库,其中文档的每一行都有一个日期字段(格式 ISO 日期)。

我正在尝试访问日期字段中的小时和分钟,并且对于每小时的每一分钟,显示行数(请注意,一分钟可以是多行)。输出将是这样的:

11:20   5
11:41   1
13:20   8
15:30   11

其中第一列是时间(小时:分钟),第二列是该时间对应的行数。

这是我在 mongodb 中执行的命令:

db.user.aggregate([{$group: {_id: {hora: {$hour: '$created_at'}, minuto: {$minute: '$created_at'}}, total: {$sum: 1}}}])

其中“hora”是显示小时的字段,“minuto”是显示分钟的字段。

这是我收到的消息:

isodate 格式如下所示:

【问题讨论】:

    标签: database mongodb isodate


    【解决方案1】:

    您似乎没有将日期存储为ISODate,而是存储为 ISODate 格式的字符串。

    当您运行find 查询时,它应该会显示
    "created_at" : ISODate("2016-11-01T11:46:03.000Z")

    而不是:

    "created_at" : "2016-11-01T11:46:03.000Z"

    你写的代码是正确的。

    您需要将字符串转换为 ISODates。

    您可以在 mongoshell 中触发此查询:

    db.user.find().forEach(function(doc){
        doc.created_at = new Date(created_at)
        db.user.save(doc);
    })
    

    【讨论】:

      猜你喜欢
      • 2018-01-18
      • 2019-06-21
      • 2015-10-21
      • 1970-01-01
      • 2022-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多