Tag Archives: aggregate

Mongodb 聚合

参考

MongoDB权威指南(第2版)
Mongodb Docs

前言

Mongodb提供了一个强大的处理框架,可以对集合中的文档进行各种组合、过滤、输出,如果你通过Mongodb其他的查询方法无法处理你的查询或者查询难度很高,那么你可以试试聚合。
这里我们只讲解一下常用的聚合管道操作符,其他的可以自行到官方文档进行查询。

语法

官方文档的聚合语法是这样的:

db.collection.aggregate(pipeline,options);

聚合:计算集合或视图中数据的聚合值,并且聚合接受一个数组,数组的每一个成员都是对象,对象里面子键都代表一个管道操作,按照顺序的从第一个管道操作到最后一个,每次操作完的文档返回给下一个管道操作。

  • pipeline: 一系列数据聚合操作或阶段。有关详细信息,请参阅 聚合管道运算,在版本2.6中更改:该方法仍然可以将流水线阶段接受为单独的参数,而不是数组中的元素; 但是,如果不指定pipeline为数组,则不能指定 options参数。
  • options:可选的。aggregate()传递给aggregate命令的附加选项。版本2.6中的新功能,仅当您指定pipeline为数组时可用。

大概我们可以把聚合理解为对文档进行一系列的操作从而达到我们需要的查询文档,聚合提供了很多管道操作符,这些管道操作符就像一根一根的管道一些,而我们通过聚合操作的文档就像管道里面的水,这根管道流下来的水继续流到下一根管道,直到没有了管道,水就流出来了。
Continue reading