当前位置:嗨网首页>书籍在线阅读

04-理解方法aggregate()

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

9.2.1 理解方法aggregate()

Collection对象提供了对数据执行聚合操作的方法aggregate(),这个方法的语法如下:

aggregate(operator, [operator], [...])

参数operator是一系列聚合运算符(如表9.1所示),让您能够指定要在流水线的各个阶段对数据执行哪种聚合操作。执行第一个运算符后,结果将传递给下一个运算符,后者对数据进行处理并将结果传递给下一个运算符,这个过程不断重复,直到到达流水线末尾。

在MongoDB 2.4和更早的版本中,方法aggregate()返回一个对象,该对象有一个名为result的属性,是一个包含聚合结果的迭代器。这意味着使用2.4版的MongoDB shell时,需要使用类似于下面的代码来访问聚合结果:

results = myCollection.aggregate( ...);
results.result.forEach( function(item){
...
});

在更高的MongoDB版本中,方法aggregate()直接返回一个包含聚合结果的迭代器。这意味着使用2.6和更高版本的MongoDB shell时,需要使用类似于下面的代码来访问聚合结果:

results = myCollection.aggregate( ...);
results.forEach( function(item){
...
});

程序清单9.3所示的示例针对的是MongoDB 2.4。