我们有文档
{a: 1}
{a: 5}
{a: 3}
如何将数据与计算当前和进行汇总?
{a: 1, cs: 1}
{a: 5, cs: 6}
{a: 3, cs: 9}
您目前只能使用mapReduce在MongoDB中做这类事情。原因是目前只有一个地方可以容纳"全局"变量,这基本上就是的"运行总数":所需要的
db.collection.mapReduce(
function(){
totals += this.a;
emit(this._id, {"a": this.a, "cs": totals});
},
function() {}, // nothing to reduce here
{
"out": { "inline": 1 },
"scope": { "totals": 0 }
}
);
所以"这里没有实际的分组",但如果你想的话,你可以这样做。重点是,这会为每个记录保持一个"运行总数",这似乎是你想要的。
"mapReduce"命令有一个名为"scope"的方面,用于实现可用于此类任务的"全局"变量。