## **聚合操作** ~~~ db.accounts.aggregate() ~~~ ## **聚合表达式** * 字段路径表达式 ``` * $<field> - 使用$来指示字段路径 * $<field> .<sub-field> - 使用$和.来指示内嵌文档字段路径 * $name - 指示银行账户文档中客户姓名的字段 * $info.dateOpened - 指示银行账户文档中开户日期的字段 ``` * 系统变量表达式 ``` *$$<variable> - 使用$$来指示系统变量 *$$CURRENT - 指示管道中当前操作的文档 ``` * 常量表达式 ``` * $literal:<value> - 指示常量<value> *$literal:<name> - 指示常量字符串”$name“<value> -这里的* *$被当做常量处理,而不是字段路径表达式 ``` 聚合管道阶段 | 名字 | 介绍 | | --- | --- | | $ project | 对输入文档进行再次投影 | | $match | 对输入文档进行筛选 | | $limit | 筛选管道内前N篇文档 | | $skip | 跳过管道内前N篇文档 | | $unwind | 展开输入文档中的数组字段 | | $sort | 对输入文档进行排序 | | $lookup | 对输入文档进行查询操作 | | $ group | 对输入文档进行分组 | | $out | 对输入文档进行输出 |