mongoDB:$ dateToString格式以15分钟的间隔显示时间

时间:2020-04-09 22:34:38

标签: mongodb mongoose mongodb-query aggregation-framework

我在这里有一个例子, https://mongoplayground.net/p/fqxBy6NAZXL

您将看到最终结果包含“ dateHour”和“ minuteBucket”字段。 我将时间除以15.0分钟,因此“ minuteBucket”值始终为0、1、2、3之一

“ dateHour”目前未显示分钟。

预期:

我需要删除“ minuteBucket”字段,但仍将时间除以15分钟进行此汇总,并在HH:MM中显示“ dateHour”,始终将其舍入15分钟。 例如,根据时间显示的格式应该是这样。

"2020-03-19T18:00:00", "2020-03-19T18:15:00","2020-03-19T18:30:00","2020-03-19T18:45:00"

1 个答案:

答案 0 :(得分:1)

您可以使用$dateFromString来解析dateHour,然后将_id.minutebucket乘以900000(15分钟* 60秒* 1000毫秒):

{
    dateHour: {
        $let: {
            vars: { parsedDate: { $dateFromString: { dateString: "$_id.dateHour", format: "%Y-%m-%dT%H" } } },
            in: { $toString: [ { $add: [ "$$parsedDate", { $multiply: [ "$_id.minuteBucket", 900000 ] } ] } ] }
        }
    }
}

Mongo Playground