前言:
汪汪汪
正文:
聚合方式3种 分别是 聚合管道( Aggregation Pipeline),映射化简(Map-Reduce),单目的聚合操作(Single Purpose Aggregation Operations)。
Aggregation Pipeline 是map-reduce 的替代方案因为更加灵活。但在类型和结果大小上有限制(100m) allowDiskUse选项可以允许生成临时文件。不需要输出新文档。优化:1. 过早过滤$match and $sort操作符在管道开始时使用可以带来好处(索引) 2.内部优化器 在聚合阶段提供了了内部优化机制即对 $sort $skip $limit 等自动优化合并调整的等
聚合操作符
$project 修改流中的文档
$unwind 对数组中的值进行分类划分
$match 过滤
$redact 修剪 可用作权限限定(get 一发新思路) 比如限制访问权限做聚合查询
$group 分组
$count 计数
$addFields 增域