1. 程式人生 > 其它 >VSCode 安裝以及初步使用教程

VSCode 安裝以及初步使用教程

MongoDB MapReduce

MapReduce 簡介

MongoDB 中的 MapReduce 可以用來實現更復雜的聚合命令,使用 MapReduce 主要實現兩個函式:map 函式和reduce函式

  • map 函式(分組):用來生成鍵值對序列,map 函式的結果作為 reduce 函式的引數
  • reduce 函式(聚合):將 map 函式的結果再做進一步的統計
MapReduce 原理

Map-Reduce 是一種計算模型,簡單的說就是將大批量的集合文件進行分組(Map),然後再將分組後的 key-value 鍵值對結果進行統計得到最終結果(Reduce)。MongoDB 提供的 Map-Reduce 非常靈活,對於大規模分散式資料分析也相當實用。

MapReduce 基本語法
db.collection.mapReduce(
   function() {emit(key,value);},  # map 函式
   function(key,values) {return reduceFunction},   # reduce 函式
   # 可選操作
   {
      out: collection,
      query: document,
      sort: document,
      limit: number
   }
)

使用 MapReduce 要實現兩個函式 Map 函式和 Reduce 函式,Map 函式呼叫 emit(key, value), 遍歷 collection 中所有的記錄, 將 key 與 value 傳遞給 Reduce 函式進行處理。

Map 函式必須呼叫 emit(key, value) 返回鍵值對。

引數說明:

  • map :對映函式 (生成鍵值對序列,作為 reduce 函式引數)。
  • reduce 統計函式,reduce函式的任務就是將key-values變成key-value,也就是把values陣列變成一個單一的值value。。
  • out 統計結果存放集合 (不指定則使用臨時集合,在客戶端斷開後自動刪除)。
  • query 一個篩選條件,只有滿足條件的文件才會呼叫map函式。(query。limit,sort可以隨意組合)
  • sort 和limit結合的sort排序引數(也是在發往map函式前給文件排序),可以優化分組機制
  • limit 發往map函式的文件數量的上限(要是沒有limit,單獨使用sort的用處不大)