分钟为间隔显示时间

分钟为间隔显示时间

本文介绍了mongoDB:$dateToString 格式以 15 分钟为间隔显示时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

如您所见,最终结果具有dateHour"和minuteBucket"字段.我将时间除以 15.0 分钟,因此minuteBucket"值将始终为 0、1、2、3 之一

As you will see final result has "dateHour" and "minuteBucket" fields.I am dividing time by 15.0 minutes so "minuteBucket" value will always be one of 0, 1, 2, 3

dateHour"现在不显示分钟.

"dateHour" is not showing minutes right now.

预期:

我需要删除minuteBucket"字段,但仍将时间除以 15 分钟以进行此聚合,并显示带有 HH:MM 的dateHour",它始终按 15 分钟四舍五入.例如,它应该根据其时间以这种格式显示.

I need to remove "minuteBucket" field but still divide time by 15 minutes for this aggregation and show "dateHour" with HH:MM where it always round up by 15 minutes.example it should look like in this format based on its time.

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

推荐答案

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

You can use $dateFromString to parse dateHour and then add _id.minutebucket multiplied by 900000 (15 minutes * 60 seconds * 1000 miliseconds):

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

蒙戈游乐场

这篇关于mongoDB:$dateToString 格式以 15 分钟为间隔显示时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-01 15:09