基于2个日期字段的MongoDB分组时间间隔

时间:2019-08-01 09:11:16

标签: java database mongodb aggregation-framework aggregation

我有一个包含以下字段的文档集合:

Document 1
    startTime :2019-06-29T02:30:00.000+00:00 (DATE)
    endTime: 2019-06-29T05:00:00.000+00:00 (DATE)

Document 2
    startTime :2019-06-29T03:00:00.000+00:00 (DATE)
    endTime: 2019-06-29T06:00:00.000+00:00 (DATE)

Document n
    startTime :2019-06-29T07:30:00.000+00:00 (DATE)
    endTime: 2019-06-29T09:00:00.000+00:00 (DATE)

我想基于集合中所有文档的startTime和endTime之间的30分钟间隔对集合进行分组。

预期结果

time: 2019-06-29T02:30:00.000+00:00
count: 1
time: 2019-06-29T03:00:00.000+00:00
count: 2
.
.
time: 2019-06-29T09:00:00.000+00:00
count: 1

我不确定使用mongo聚合是否可以实现。目前,我正在使用 org.springframework.data.mongodb.core.aggregation 中的Aggregation类来进行所有查询。我已经读过有关具有 $ range 的mongo的信息,但是不确定使用Dates和MongoTemplate

是否可以实现。
Aggregation agg = Aggregation.newAggregation
(
Aggregation.match(),
Aggregation.project(),
Aggregation.group(),
...);

0 个答案:

没有答案