時間:2024-03-04 00:33作者:下載吧人氣:21
MongoDB MapReduce
MapReduce是一種計算模型,簡單的說就是將大批量的工作(數據)分解(MAP)執行,然后再將結果合并成最終結果(REDUCE)。這樣做的好處是可以在任務被分解后,可以通過大量機器進行并行計算,減少整個操作的時間。
上面是MapReduce的理論部分,下面說實際的應用,下面以MongoDB MapReduce為例說明。
下面是MongoDB官方的一個例子:
> db.things.insert( { _id : 1, tags : [‘dog’, ‘cat’] } );> // map function
> map = function(){
… this.tags.forEach(
… function(z){
… emit( z , { count : 1 } );
… }
… );
…};
> // reduce function
> reduce = function( key , values ){
… var total = 0;
… for ( var i=0; i<values.length; i++ )
… total += values[i].count;
… return { count : total };
…};
db.things.mapReduce(map,reduce,{out:’tmp’})
{
“result” : “tmp”,
“timeMillis” : 316,
“counts” : {
“input” : 4,
“emit” : 6,
“output” : 3
},
“ok” : 1,
}
> db.tmp.find()
{ “_id” : “cat”, “value” : { “count” : 3 } }
{ “_id” : “dog”, “value” : { “count” : 2 } }
{ “_id” : “mouse”, “value” : { “count” : 1 } }
網友評論