第四章 MongoDB聚合操作
1.什么是聚合
聚合就是由许多操作连接起来,把想要的文档集合输入聚合管道中,经过各种转换(stage),生成我们想要的文档集合。类似于Java中Stream流操作,上一个阶段流处理的结果可以作为下一个阶段的输入。下图比较抽象的例子,输入集合经过各种阶段(stage),转换成了想要的矩阵的样子。
2.几种常见方式
MongoDB提供Aggregation Pipeline、Map-Reduce、Single Aggregation Operations。其中Aggregation Pipeline提供比Map-Reduce更好的性能和一致性的接口;而Map-Reduce可以使用JavaScript 函数去自定义 map和reduce的操作;Single Aggregation Operations则是由MongoDB提供内置命令,可以使用一些简单场景。
3.Aggregation Pipeline
- $match() 阶段:筛选出符合条件的文档
- $group() 阶段:对文档进行分组
- $sort() 阶段: 对文档排序
语法
pipeline = [
{
$match : {
… },
{
$group : {
… },
{
$sort : {
… },<