我正在使用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个聚合查询,每个查询都有一个单独的分组开始日,但我更喜欢运行单个查询来节省时间 .

我真诚地希望我是愚蠢的,并会发布一个简单的解决方案 .