Aggregation > Aggregation Concepts > Aggregation Pipeline
来源:互联网 发布:山东滨州大数据产业园 编辑:程序博客网 时间:2024/05/17 13:41
聚合管道
聚合管道是一种模拟数据处理管道的聚合框架。文档进入聚合管道进而输出所需的结果文档。
聚合管道提供一种相对MapReduce简单的选择,在处理不需要复杂分析逻辑的场景下比较适用。
带有$match和&group注解的聚合管理框图
聚合管道在值类型和结果集大小上存在限制。(具体约束翻译文档待续翻译)
管道
从概念上讲,集合中的文档在穿过管道过程中进行转换。与Unit中的管道命令在概念上是类似的。
MongoDB的聚合管道通过流的方式处理集合中的文档。文档在传输过程中被管道中的操作进行处理。管道操作不需要在每一步操作后产生结果文档,并且管道操作可以重复执行。
2.6版本中的MongoDB中,db.collection.aggretate()可以产生任意大小的集合。之前的版本只能生成最大为16M的集合。
管道表达式
每个管道操作都需要一个管道表达式来做为操作数。管道表达式用于指定应用于输入文档的转换操作。管道表达式包含字段、值、操作符。
管道表达式只能处理在管道中的当前数据:表达式提供了一种内存式的处理。
一般来说,管道操作是无状态的并且只能计算被管道表达式看到时的数据,除了一个例外:累计表达式。累计表达式使用$group操作符管理通过管道的数据的状态。
聚合管道行为
在MongoDB中,聚合命令在一个集合上进行操作,逻辑上将整个集合传递到聚合管道中。为了优化聚合操作,在任何可能的机会使用如下的策略来避免扫面整个集合。
管道操作和索引
在管道操作的开始处可以使用$match和$sort,进而利用到集合索引。
在MongoDB2.4版本中,新增$geoNear操作可以利用地理空间索引。当使用$geoNear操作时,必须在管道操作的第一阶段使用。
在MongoDB2.6版本中的修改:在之前的版本中,对于选择的用例,索引可以覆盖整个管道。
提前过滤
如果在你的聚合操作中只需要集合的部分数据,可以在管道开始处使用$limit、$match、$skip对集合数据进行过滤。在集合的开始处使用$match可以使用合适的索引过滤符合要求的文档。
在管道操作$match的后边跟随$sort,在逻辑上等同于查询之后进行排序,可以利用索引。一旦有可能,在管道开始处使用$match。
提前过滤
在聚合管道中存在自有的内部优化可以提高一系列聚合操作的性能。(详情见后续翻译)
分区节点中支持聚合操作。(详情见后续翻译)
0 0
- Aggregation > Aggregation Concepts > Aggregation Pipeline
- Aggregation
- MongoDB Aggregation Pipeline
- MongoDB Aggregation 聚合管道(Aggregation Pipeline)
- MongoDB 聚合管道(一)(Aggregation Pipeline)
- MongoDB 聚合管道(二)(Aggregation Pipeline)
- MongoDB 聚合管道(Aggregation Pipeline)
- MongoDB 聚合管道(一)(Aggregation Pipeline)
- MongoDB 聚合管道(二)(Aggregation Pipeline)
- MongoDB 聚合管道(Aggregation Pipeline)
- MongoDB 聚合管道(Aggregation Pipeline)
- Mongodb 聚合管道(Aggregation Pipeline)
- MongoDB 聚合管道(一)(Aggregation Pipeline)
- MongoDB 聚合管道(二)(Aggregation Pipeline)
- MongoDB 聚合管道(Aggregation Pipeline)
- MongoDB 聚合管道(Aggregation Pipeline)
- 【MongoDB】Aggregation Pipeline——聚合管道
- Aggregation explained
- 关于公安部要求网站做好源端口号留存的通知及解决方案
- spring源码下载地址
- UIlabel 动态调整高度(UITableView)
- viewport的使用
- Swing中的一些对话框
- Aggregation > Aggregation Concepts > Aggregation Pipeline
- android AsynTask出现java.net.UnknownHostException问题解决方案
- Nginx配置文件nginx.conf中文详解
- 分支-17. 统计学生成绩(15)
- asp.net使用母版页以及Jquery和prototype要注意的问题
- ArcGIS教程:趋势面法的工作原理
- substring 、left、 PATINDEX
- Windows Embedded CE 6.0 Internals (3) Memory Continued
- 再温http协议,入门手册。