我有一个包含以下字段的文档集合:
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(),
...);