mongoDB:$dateToString 格式以 15 分钟间隔显示时间 [英] mongoDB: $dateToString format to show time by 15min interval

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

问题描述

I have a example here, https://mongoplayground.net/p/fqxBy6NAZXL

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" is not showing minutes right now.

Expected :

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 ] } ] } ] }
        }
    }
}

Mongo Playground

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

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆