2014-10-06 30 views
0

的电流和我们有文件的MongoDB:田

{a: 1} 
{a: 5} 
{a: 3} 

如何aggrerage与钙电流和数据?

{a: 1, cs: 1} 
{a: 5, cs: 6} 
{a: 3, cs: 9} 
+0

'db.c.aggregate({_ id:'$ a',cs:{$ sum:1}})'除非计数来自其他地方 – Sammaye 2014-10-06 09:52:30

回答

1

你只能做这样的事情在目前的MongoDB中的MapReduce与。究其原因是目前是地方可以保存“全局”变量,那就是基本上你需要什么了“运行总计”

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"命令有一个称为“范围”的方面,用于实现可用于此类任务的“全局”变量。