mongoDB: Показывать MinuteBucket в значении времени в качестве конечного времени для интервала - PullRequest
1 голос
/ 11 апреля 2020

Я создал Пн go PlayGround

В настоящее время поле dateHour делит время на 15-минутный интервал.

Например, если

`"updatedAt": ISODate("2020-03-20T18:16:50.000Z")` 

, то отображается как:

 "dateHour": ISODate("2020-03-20T18:15:00Z"),

, поэтому первые 15-минутные интервалы представлены как 18: 00: 000z (это охватывает минуты от 1 до 15)

второе 15-минутное ведро представляется как 18: 15: 000z (это охватывает минуты с 15 до 30) и так далее ...

Ожидается -

Первое 15-минутное ведро должно отображаться как 18: 15: 000z (охватывает минуты от 1 до 15) второе 15-минутное ведро должно быть отображается как 18: 30: 000z (охватывает минуты с 15 до 30) и т. д.

1 Ответ

1 голос
/ 12 апреля 2020

Вы используете $ trun c, который в этом случае преобразует результат $divide в более низкую минутную корзину, вместо нее можно использовать $ ceil :

minuteBucket: {
    $ceil: {
        $divide: [ { $minute: "$updatedAt"  },  15.0  ]
    }
},

Пн go Детская площадка

...