【发布时间】:2015-01-03 22:54:25
【问题描述】:
我在数据库中有这个集合
[{name:1,startDate:1/1/13,endDate:2/2/13,number:10},
{name:1,startDate:2/2/13,endDate:5/2/13,number:15},
{name:2,startDate:2/1/13,endDate:5/2/13,number:25},
{name:1,startDate:5/2/13,number:17},
{name:2,startDate:5/2/13,number:30}]
我想得到一个开始日期的列表,其中包含这个开始日期范围内的数字的平均值,例如,这个集合的结果是:
{date:1/1/13,avg:10},
{date:2/1/13,avg:17.5},
{date:2/2/13,avg:20},
{date:5/2/13,avg:23.5}
我尝试了一些 map-reduce 和 group,但没有一个可以正确按开始日期分组, 请帮忙。
【问题讨论】:
-
你能解释一下你是如何计算这个平均值的吗?
-
第一个结果是 10,因为在 2013 年 1 月 1 日没有涉及其他日期
-
第二个是 17.5,因为集合中的第一项和第三项在 2/1/13 日期
-
这样解释好吗?
-
解释很好,但您应该编辑您的问题,因为在第一个文档中 2/1/13 日期不存在?
标签: mongodb mapreduce mongoose mongodb-query aggregation-framework