我们有文件
{a: 1}
{a: 5}
{a: 3}
如何使用calc current sum汇总数据?
{a: 1, cs: 1}
{a: 5, cs: 6}
{a: 3, cs: 9}
答案 0 :(得分:1)
您只能使用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"命令有一个方面称为"范围"用于实现"全球"可用于此类任务的变量。