MongoDB - 聚合查询
聚合管道
聚合框架是 MongoDB 中的一组分析工具,可以对一个或多个集合中的文档进行分析。
MongoDB 的聚合框架基于管道的概念:首先从集合中获取到输入,然后将输入的文档传递到一个或多个阶段,每个阶段都将之前阶段输出的内容作为输入,终得到一个聚合结果作为输出。
上面的图是一个比较宽泛的管道流程图。这里展示一个 MongoDB 聚合语句映射到管道之后的情况:
在这里可以看得出,aggregate([{}, {}])
是一个聚合语句,在函数的数组中,每一个对象都是一个阶段,$match
应该就是一个筛选文档的阶段,$group
应该就是一个分组汇总的阶段。
管道阶段
使用聚合框架重要的就是熟悉操作的语法,以及将这些语法构建成管道当中的阶段。
在 MongoDB 聚合框架中,每一个阶段都必须要规定一个特定的阶段运算符,这些阶段运算符表明了阶段的执行规则,可以到 官方文档 上查看更多、更详细的内容。
常见操作
常见的操作应该是能与普通查询语句对应上的操作,如查询、投影、排序、跳过、限制等等。虽然这些在一个 find()
语句中就能实现。
常使用的操作就是查询,也可以说是筛选、过滤,在聚合框架中使用 $match
来表明这是一个筛选文档的阶段。如下是其使用语法:
相关文章