【发布时间】:2017-02-25 21:10:11
【问题描述】:
我有下一个虚拟数据集:
{"id": 1, "date": "2017-04-01", "total": 1}
{"id": 2, "date": "2017-04-03", "total": 2}
{"id": 3, "date": "2017-04-10", "total": 1}
{"id": 4, "date": "2017-04-11", "total": 1}
我也有一些固定值count_of_days。让它等于 5 (count_of_days = 5)
我需要创建下一组:
{"2017-04-01 + 5 days": count: 2, sum_of_total: 3}
{"2017-04-03 + 5 days": count: 1, sum_of_total: 2}
{"2017-04-10 + 5 days": count: 2, sum_of_total: 2}
{"2017-04-11 + 5 days": count: 1, sum_of_total: 1}
其中count 是日期字段在[date; date + count_of_days] 范围内的文档计数
所以对于id=1 的文档,我们有这样的组
{"2017-04-01 + 5 days": count: 2, sum_of_total: 3}
因为
doc 的 1 date 在[2017-04-01; 2017-04-06 (+ 5 days)] 范围内,并且
文档的 2 date 2017-04-03 在[2017-04-01; 2017-04-06 (+ 5 days)] 范围内
如何我可以使用aggregation framework 或Map/Reduce 来做到这一点?
主要目标是生产力和计算速度
【问题讨论】:
-
抱歉,不清楚您要问什么,尝试重构您的问题。
-
@leonziyo 我试过了,完成了
-
您提交的日期是字符串数据类型还是日期数据类型?
-
@leonziyo 实际上是 ISO 日期
标签: mongodb mongodb-query aggregation-framework