3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
此篇文章瀏覽量: 282 基本概念 對映(map) 歸納(reduce) 定型(finalize,這是 option) 主要是以下步驟:‌ 執行前處理:在執行 MapReduce 前,先對集合內的資料進行篩選或排序的處理。 執行 Map 函式:Map 函式主要的功能是定義分群規則與分群後的資料內容。 執行 Reduce 函式:Reduce 函式主要的功能是合併群組內的資料。 設定輸出位置。 mapReduce 執行結果。 ‌ mapReduce() 的語法如下: db.collection.mapReduce( , // 對映(map)函式 , // 歸納(reduce)函式 // options 以下為可輸入的參數 { out: , // 要輸出的集合名稱 query: , // 查詢式 sort: , // 排序 limit: , // 限制資料數量 finalize: , // 定型(finalize)函式 scope: , // 全域變數可以被 map、reduce、finalize 函式存取 jsMode: , // 將 map 與 reduce 傳遞的資料使用 JavaScript 的 objects verbose: , // 是否包含處理時間的資訊 } ) 也可以將 mapReduce 結果 results 不輸出至集合來直接顯示,透過在 mapReduce 的 outline 改輸入為 out: {inline: 1} 即可。 範例:計算來自台北市各個行政區之消費者的總人數與平均年齡 var fnmap = function(){ emit( this.district, {count: 1, age: this.age} ) } var fnreduced = function(key, values){ var reduced = {count: 0, age: 0} for(var idx = 0; idx < values.length; idx++){ var val = values[idx] reduced.age += val.age reduced.count += val.count } return reduced } var fnfinalized = function(key, reduced){ reduced.avgAge = reduced.age / reduced.count; return reduced } db.getCollection('customers').mapReduce( fnmap, fnreduced, { query: {city: '台北市'}, finalize: fnfinalized, out: {inline: 1} } ) 若覺得文章有幫助,請多分享,讓其他同好也能吸收網站技能知識。 Tweet

本文由carlos-studiocom提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦