打算用mongodb mapreduce之前一定要知道的事!!!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打算用mongodb mapreduce之前一定要知道的事!!!相关的知识,希望对你有一定的参考价值。
mapreduce其实是分批处理数据的,每一百次重新reduce处理,所以到reduce里的数据如果是101条,那就会分2次进入。
这导致的问题就是在reduce中 如果 初始化 var count = 0;在循环中 count ++,最后输出的是1???
避免都方法是,把数据存在返回的value里,这个value是会在循环进入reduce的时候重用的。在循环中 count += value.count就能把之前都100加上了!!!
还有如果只有一条数据,那它不会进入reduce,会直接返回。
下面是具体例子:
string map = @" function() { var view = this; emit(view.activity, {pv: 1}); }"; string reduce = @" function(key, values) { var result = {pv: 0}; values.forEach(function(value){ result.pv += value.pv; }); return result; }"; string finalize = @" function(key, value){ return value; }";
以上是关于打算用mongodb mapreduce之前一定要知道的事!!!的主要内容,如果未能解决你的问题,请参考以下文章