4
我有一系列的文檔在MongoDB中。一個示例doc將是MongoDB在前幾周的總收入爲每週的基礎
{
createdAt: Mon Oct 12 2015 09:45:20 GMT-0700 (PDT),
year: 2015,
week: 41
}
想象一下,這些跨越一年中的所有星期,並且在同一周內可能會有很多。我想彙總它們的結果值是每週的總和以及前幾周所有文檔的總和。
所以,如果有第二是像10年的第一週和20,其結果可能是類似
[{ week: 1, total: 10, weekTotal: 10},
{ week: 2, total: 30, weekTotal: 20}]
創建聚集找到weekTotal是很容易的。包括一個投影來顯示第一部分
db.collection.aggregate([
{
$project: {
"createdAt": 1,
year: {$year: "$createdAt"},
week: {$week: "$createdAt"},
_id: 0
}
},
{
$group: {
_id: {year: "$year", week: "$week"},
weekTotal : { $sum : 1 }
}
},
]);
但通過這個基於上週和前幾周的總和證明是棘手的。