我正在使用mongodb聚合框架进行一些分析,我被困在这个特定的一个 .
在英语中,我试图运行以下查询:
“找出给定时间范围内的平均5天计数 . ”
所以给定一个如下所示的数据集:
{
:_id => BSONID,
:date => ISO(DATE),
:count => 3
},
{
:_id => BSONID,
:date => ISO(DATE),
:count => 2
},
{
:_id => BSONID,
:date => ISO(DATE),
:count => 9
}
...
我想要一个结果:
[
{:_id => "2014-145", :five_day_average_count => 3},#this is the average count from 2014-145 through 2014-149
{:_id => "2014-146", :five_day_average_count => 6},#this is the average count from 2014-146 through 2014-150
{:_id => "2014-147", :five_day_average_count => 4},#this is the average count from 2014-147 through 2014-151
...
]
其中_id是$ year和$ dayOfYear(这可以用$ concat实现) .
我完全有能力将数据分组为长度为5天的组 . 困难在于单个数据点将同时分为5组 . 现在我可以运行5个聚合查询,每个查询都有一个单独的分组开始日,但我更喜欢运行单个查询来节省时间 .
我真诚地希望我是愚蠢的,并会发布一个简单的解决方案 .