比如有如下数据:
_id | time | value |
---|---|---|
1 | 2023-06-20 00:00:00 | 24 |
2 | 2023-06-21 23:00:00 | 12 |
3 | 2023-06-22 12:43:13 | 345 |
4 | 2023-06-23 13:35:34 | 35 |
5 | 2023-06-24 17:34:12 | 46 |
6 | 2023-06-25 00:00:00 | 68 |
7 | 2023-06-26 12:44:34 | 464 |
8 | 2023-06-27 00:00:00 | 24 |
9 | 2023-06-28 00:00:00 | 67 |
10 | 2023-06-29 00:00:00 | 24 |
我有一个List数组作为查询条件,里面有一组时间段,比如:
TimeRange
Date startTime;
Date endTime;
现在我需要查询出多个时间段的平均值,并能将平均值与时间段相匹配,比如:
时间段1:2023-06-19 00:00:00 ~ 2023-06-21 23:59:59
时间段2:2023-06-23 00:00:00 ~ 2023-06-25 23:59:59
时间段2:2023-06-27 00:00:00 ~ 2023-06-29 23:59:59
若得到的最终结果存入map,则最终结果应该是
{
"2023-06-19 00:00:00~2023-06-21 23:59:59":18,
"2023-06-23 00:00:00~2023-06-25 23:59:59":49.67,
"2023-06-27 00:00:00~2023-06-29 23:59:59":38.33
}
我该如何使用mongoTemplate实现这种聚合?
目前我是使用循环查询,但是实在影响性能,有什么一次性就查出的方法吗?
在网上找了很多资料,包括chatGPT问了很多,都没有可行的手段,但从逻辑上看来是个简单问题,希望得到帮助,谢谢各位!