mongodb mapreduce

主要是兩個方法遍略,map和reduce方法压鉴。
一個簡單的示例

//定義map方法
var map = function() {};
//定義reduce方法
var reduce = function(key, values) {};
//定義callback
var callback = function(err, collection) {};
db.collection.mapReduce(map, reduce, {out:{},query:{}}, callback);
map方法
var map = function() {
    //書寫要歸檔或者說映射的鍵和值
    //this指向一個文檔對象
    emit(key, value)
}
//例如
//數據庫有如下數據
{
   name: 'yuyang',
   age: 20
}
{
   name: 'yuyang',
   age: '30'
}

{
    name: 'dayu',
    age: 27
}
//看map函數是如何歸檔的
var map = function() {
    emit(this.name, this.age);
}
歸檔后的數據如下
{
    'yuyang': [20, 30],
    'dayu': [27]
}
//這就是map函數的作用通過emit(key, value),可以以key為新的key,把value集合成values給新的key崖咨。就像上面一樣.
reduce方法
//繼續(xù)使用歸檔后的數據做reduce
var reduce = function(key, values) {
     //redcue方法相當于對歸檔后的數據做一個遍歷調用我們可以拿到每個key和對應的values.最終函數的返回值 會 綁定到key上面
    var age = 0;
    values.forEach(function(value) {
        age += value;
    });
     return age;
}; 
//reduce后的數據結構
{
  'yuyang': 50,
  'dayu': 27
}
//最終這個reduce后的數據或者說文檔會放到一個collection中兵調用我們的callback函數

function callback(err, collection) {
    //我們最終要對map reduce后的數據的處理
    collection.find().toArray(function(err, results) {
        console.log(err || results);
    });
}


//到這基本就結束了 ,在回到接口api油吭,重新看一下.
db.collection.mapReduce(map, reduce, {
    out: {
                //mapreduce 后數據寫入的集合
        replace : 'tempCollection', 
        readPreference : 'secondary'
    },
        //mapreduce 前 我們對文檔的query
    query: {
        date:{$gte: new Date('2015-07-07 00:00:00')}
    }
}, callback);
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末击蹲,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子婉宰,更是在濱河造成了極大的恐慌歌豺,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件心包,死亡現場離奇詭異类咧,居然都是意外死亡,警方通過查閱死者的電腦和手機蟹腾,發(fā)現死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門痕惋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人娃殖,你說我怎么就攤上這事值戳。” “怎么了炉爆?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵堕虹,是天一觀的道長。 經常有香客問我芬首,道長赴捞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任衩辟,我火速辦了婚禮螟炫,結果婚禮上,老公的妹妹穿的比我還像新娘艺晴。我一直安慰自己昼钻,他們只是感情好掸屡,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著然评,像睡著了一般仅财。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上碗淌,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天盏求,我揣著相機與錄音,去河邊找鬼亿眠。 笑死碎罚,一個胖子當著我的面吹牛,可吹牛的內容都是我干的纳像。 我是一名探鬼主播荆烈,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼阿纤,長吁一口氣:“原來是場噩夢啊……” “哼乍迄!你這毒婦竟也來了丰歌?” 一聲冷哼從身側響起鄙陡,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎管挟,沒想到半個月后缓熟,有當地人在樹林里發(fā)現了一具尸體移稳,經...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡犀勒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年屎飘,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片账蓉。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡枚碗,死狀恐怖逾一,靈堂內的尸體忽然破棺而出铸本,到底是詐尸還是另有隱情,我是刑警寧澤遵堵,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布箱玷,位于F島的核電站,受9級特大地震影響陌宿,放射性物質發(fā)生泄漏锡足。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一壳坪、第九天 我趴在偏房一處隱蔽的房頂上張望舶得。 院中可真熱鬧,春花似錦爽蝴、人聲如沸沐批。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽九孩。三九已至先馆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間躺彬,已是汗流浹背煤墙。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宪拥,地道東北人仿野。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像她君,于是被迫代替她去往敵國和親设预。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內容

  • 在做聚合運算的時候犁河,Map-reduce是個不錯的選擇鳖枕;顧名思義:Map-reduce主要通過實現Map函數與re...
    小直閱讀 4,689評論 1 47
  • MapReduce 使用JavaScript作為“查詢語言”。因此它能夠表達任意復雜的邏輯桨螺。然而宾符,這種強大是有代價...
    AQ王浩閱讀 426評論 0 3
  • MapReduce介紹 MongoDB 中的MapReduce 使用JavaScript來作為查詢語言,因此能表達...
    持續(xù)進步者閱讀 793評論 0 0
  • MapReduce是一個數據處理的編程模型灭翔。這個模型很簡單魏烫,但也不是簡單到不能夠支持一些有用的語言。Hadoop能...
    單行線的旋律閱讀 1,518評論 0 2
  • 因嫌室友腳臭將其致死呐赡,自己卻亡命天涯! 回顧2013年北京市門頭溝永定鎮(zhèn)一場因腳臭引發(fā)的血案骏融,讓人不由感嘆链嘀!感嘆人...
    耀舉閱讀 2,146評論 2 5