1、聚合(aggregate)
- 聚合是基于数据处理的聚合管道,每个文档通过一个由多个阶段组成的管道,可以对每个阶段的管道进行分组,过滤等功能,然后经过一些列的处理,输出相应的结果
db.集合名称.aggregate({管道:{表达式}})
2、常用的管道命令
- “$group”:将集合中的文档分组,可用于统计结果
- “$match”:过滤数据,只输出符合条件的文档
- “$project”:修改文档的结构,如重命名、增加,删除字段,创建计算结果
- “$sort”:将输入文档排序后输出
- “$limit”:限制聚合管道返回的文档数量
- “$skip”:跳过指定数量的文档,并返回剩余的文档
- “$unwind”:将数组类型的字段进行拆分
3、MongoDB中常用的表达式
- “$unwind”:计算总和,“$sum:1” 表示以一倍计算
- “$avg”:计算平均值
- “$min”:计算最小值
- “$max”:计算最大值
- “$push”:在结果文档中插入值到一个数组中
- “$first”:根据资源文档的排序获取第一个文档数据
- “$last”:根据资源文档的排序获取最后一个文档数据
4、举例
- "$group"的用法
如下:

- "$project"的用法
如下:

- "$match"的用法
如下:

- "$sort"的用法
如下:

- "$skip"的用法
如下:

- "$limit"的用法
如下:

- "$unwind"的用法
- 如下