Mongodb mapreduce

这两天被mongdb的mapreduce弄得有点晕,先记录下。之后逐步完善。工具

MapReduce是聚合工具中的明星。count、distinct、group能作的MapReduce都能作到。文档

Diagram of the annotated map-reduce operation.

reduce function(key,value){....}
reduce必定要能被反复调用,不管是被映射环节仍是前一个化简环节。因此reduce返回的文档必须能做为reduce的第二个参数的一个元素。例如,x键映射到了3个文档{count:1,id:1}、{count:1,id:2}和{count:1,id:3},其中id键用于区别。MongoDB可能这样调用reduce:
> r1 = reduce("x",[{count:1,id:1},{count:1,id=2}])
{count:2}
>r2 = reduce("x",[count:1,id:3])
{count:3}
不能认为第二个参数老是初始文档之一(这里即是{count:1})或者有固定长度。reduce应该能处理emit文档和其余reduce结果的各类组合。it

相关文章
相关标签/搜索