mongoDB:$dateToString 格式以 15 分钟间隔显示时间
Posted
技术标签:
【中文标题】mongoDB:$dateToString 格式以 15 分钟间隔显示时间【英文标题】:mongoDB: $dateToString format to show time by 15min interval 【发布时间】:2020-07-22 16:07:13 【问题描述】:我这里有一个例子, 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】:可以使用$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
【讨论】:
让我指出,您现在连续 2 天节省了我的许多时间。多谢。我应该有你的电子邮件地址,以防万一我在 mognodb 查询中遇到问题,哈哈...谢谢 顺便说一句,我还需要从投影字段中删除 minuteBucket。如果我现在删除它,它会破坏查询。你能帮忙吗? @newdeveloper 仅从最后阶段删除它 成功了。我正在做这分钟Bucket:0,它给出了错误谢谢 我在 shell 脚本中使用它,但它给了我错误,不确定语法中缺少什么 -- ZONE_AGGREGATE_COMMAND+=' dateHour: $let: vars: parsedDate: $dateFromString: dateString: "$_id.dateHour",格式: "%Y-%m-%dT%H",in: $toString: [$add: ["$$parsedDate",$multiply: ["$ _id.minuteBucket",900000]]],'以上是关于mongoDB:$dateToString 格式以 15 分钟间隔显示时间的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB:如何在 3.6 mongoDb 版本中解析日期?