日期:2014-05-16  浏览次数:20542 次

MongoDB初探-细说聚合

一、简单聚合工具

1、count

count是最简单的聚合工具,用于返回集合中文档的数量。


2、distinct

distinct和其他数据库的语义是相同的,用于找到给定键的所有不同的值,即去重。


二、复杂聚合工具

1、group

group和SQL中的group by类似,用于分组。


group聚合可以使用condition过滤返回的文档,使用完成器finalizer精简返回的数据。


2、MapReduce

MapReduce是一种编程模型,通过将任务分解到不同的机器上,让每台机器完成一部分。当所有机器都完成的时候,再将结果汇集起来形成最终完整的结果,常用于分布式计算中。
MapReduce其实由两部分组成,一个map函数,一个reduce函数。
map:映射,将操作映射到集合中的每个文档,中间会调用emit(key,value)集合会按照指定的key进行映射分组。
reduce:化简,对map分组后的数据进行简化。

注:由于MapReduce处理速度慢,不能在实时环境中使用。可以使用后台任务运行MapReduce,然后对映射化简后的集合进行实时查询。MapReduce常用于离线处理。