管道聚合各阶段
名称 | 描述 |
$project | 改造流中的文档,像通过增加新的字段或移除存在的字段。对于每一个输入文档,输出一个文档。 |
$match | 过滤文档流,只允许匹配的文档不经过修改进入到下一个管道阶段。$match使用标准的MongoDB查询。对于每个输入文档,输出要么一个文档(匹配一个)要么零个文档(无匹配)。 |
$redact | 通过限制文档的内容(基于存储于文档它们自己的信息),改造流中每个文档。结合$project和$match的功能。可用于实施字段级别的校订。对于每个输入文档,输出要么一个要么另个文档。 |
$limit | 当n指定值时,传递前n个文档不经修改给管道。对于每个输入文档,输出要么一个文档(对于前n个文档)要么零个文档(在前n个文档之后)。 |
$skip | 当n指定为跳过数量时,跳过前n个文档,并传递剩下的文档不经过修改给管道。对于每一个输入文档,输出要么零个文档(对于前n个文档)要么一个文档(如果在前n个文档之后)。 |
$unwind | 对于每一个元素,从输入文档解构数组字段输出一个文档。每个输出文档使用元素值替换数组。对于每个输入文档,当n为数组元素个数,输出n个文档,对于空数组可以为零。 |
$group | 通过指定标识符表达式分组输入的文档,并应用累加器表达式,如果指定,到每个分组。遍历所有的输入文档,对于每个不同的分组输出一个文档。输出文档只包含标识符列和计算列(如果指定)。 |
$sort | 通过指定的排序键重排文档流。只有顺序改变了;文档保持不变。对于每个输入文档,输出一个文档。 |
$geoUear | 返回一个排序的基于临近一个地理空间点的文档流。对于地理空间数据,结合$match、$sort和$limit功能。输出文档包含额外的距离字段,并可以包含一个位置标识符字段。 |
$out | 写聚合管道的结果文档到一个集合。在使用$out阶段,它必需是管道中的最后一个阶段。 |
额外资源
MongoDB Analytics: Learn Aggregation by Example: Exploratory Analytics and Visualization Using Flight Data
MongoDB for Time Series Data: Analyzing Time Series Data Using the Aggregation Framework and Hadoop
The Aggregation Framework
Webinar: Exploring the Aggregation Framework
Quick Reference Cards