mongoDB:$ dateToString格式以15分钟的间隔显示时间 [英] mongoDB: $dateToString format to show time by 15min interval
问题描述
我在这里有一个例子, https://mongoplayground.net/p/fqxBy6NAZXL
I have a example here, 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"
推荐答案
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分钟的间隔显示时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!