欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MongoDB學習筆記之MapReduce使用示例

 更新時間:2015年07月04日 15:31:26   投稿:junjie  
這篇文章主要介紹了MongoDB學習筆記之MapReduce使用示例,本文直接給出實例代碼,需要的朋友可以參考下

一、mapreduce是根據(jù)map函數(shù)里調(diào)用的emit函數(shù)的第一個參數(shù)來進行分組的

Map-Reduce是一種計算模型,簡單的說就是將大批量的工作(數(shù)據(jù))分解(MAP)執(zhí)行,然后再將結果合并成最終結果(REDUCE)。

使用 MapReduce 要實現(xiàn)兩個函數(shù) Map 函數(shù)和 Reduce 函數(shù), Map 函數(shù)調(diào)用 emit(key, value), 遍歷 collection 中所有的記錄, 將key 與 value 傳遞給 Reduce 函數(shù)進行處理。Map 函數(shù)必須調(diào)用 emit(key, value) 返回鍵值對。

參數(shù)說明:
1. map :映射函數(shù) (生成鍵值對序列,作為 reduce 函數(shù)參數(shù))。
2. reduce 統(tǒng)計函數(shù),reduce函數(shù)的任務就是將key- values變成key-value,也就是把values數(shù)組變成一個單一的值value。
3. out 統(tǒng)計結果存放集合 (不指定則使用臨時集合,在客戶端斷開后自動刪除)。
4. query 一個篩選條件,只有滿足條件的文檔才會調(diào)用map函數(shù)。(query。limit,sort可以隨意組合)
5. sort 和limit結合的sort排序參數(shù)(也是在發(fā)往map函數(shù)前給文檔排序),可以優(yōu)化分組機制
6. limit 發(fā)往map函數(shù)的文檔數(shù)量的上限(要是沒有l(wèi)imit,單獨使用sort的用處不大)

//測試數(shù)據(jù)準備
db.user.drop();

for(var i=10; i< 100; i++) {
  db.user.insert({
    name:"user" + i, 
    age : Math.floor(Math.random()*10)+ 20, 
    sex : Math.floor(Math.random()*3)%2 ==0 ? 'M' : 'F',
    chinese : Math.floor(Math.random()*50)+50,
    math : Math.floor(Math.random()*50)+50,
    english : Math.floor(Math.random()*50)+50,
    class : "C" + i%5
  })
}


// runCommand運行方式
db.sales.runCommand({
  mapreduce: "user",

  map: function(){
    if(this.class == "C1") {
      emit(this.age, this.age);
    }
  },

  reduce: function(key,values){
    var maxValue = Max(key, values);
    return maxValue;
  },

  {
    out: {inline: 1},
    query : "",
    sort: "",
    limit: "",
  }
})


db.user.mapReduce(
  // 映射函數(shù),里面會調(diào)用emit(key,value),集合會按照你指定的key進行映射分組。
  function(){
    // 按照emit函數(shù)的第一個參數(shù)進行分組
    // 第二個參數(shù)的值會傳遞給reduce
    emit(this.age, this);  
  },

  // 簡化函數(shù),會對map分組后的數(shù)據(jù)進行分組簡化
  // 在reduce(key,value)中的key就是emit中的key, vlaues為emit分組后的emit(value)的集合
  function(key, values){
    var maxValue = Math.max(key, values);
    return maxValue;
  },

  // 可選參數(shù)
  {
    query: {sex: "F"},
    out: "result",
    sort : {},
    limit : 0
  }
)

執(zhí)行結果:

{
  "result" : "result", // 存放的集合名
  "timeMillis" : 23,
  "counts" : {
    "input" : 29, // 傳入文檔的個數(shù)
    "emit" : 29,  // 此函數(shù)被調(diào)用的次數(shù)
    "reduce" : 6, // 此函數(shù)被調(diào)用的次數(shù)
    "output" : 8  // 最后返回文檔的個數(shù)
  },
  "ok" : 1
}

查看返回的結果:

db.result.find()

相關文章

  • MongoDB聚合$listSampledQueries實例操作

    MongoDB聚合$listSampledQueries實例操作

    使用$listSampledQueries可以返回指定集合或所有集合的采樣查詢,analyzeShardKey命令使用采樣查詢來計算分片密鑰的讀寫分布指標,這篇文章主要介紹了MongoDB聚合$listSampledQueries,需要的朋友可以參考下
    2024-02-02
  • mongodb使用docker搭建replicaSet集群與變更監(jiān)聽(最新推薦)

    mongodb使用docker搭建replicaSet集群與變更監(jiān)聽(最新推薦)

    replicaSet和cluster從部署難度相比,replicaSet要簡單許多。如果所存儲的數(shù)據(jù)量規(guī)模不算太大的情況下,那么使用replicaSet方式部署mongodb是一個不錯的選擇,這篇文章主要介紹了mongodb使用docker搭建replicaSet集群與變更監(jiān)聽,需要的朋友可以參考下
    2023-03-03
  • 關于mongodb初始化以及配置方式

    關于mongodb初始化以及配置方式

    這篇文章主要介紹了關于mongodb初始化以及配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • mac下使用brew 安裝mongodb的方法教程

    mac下使用brew 安裝mongodb的方法教程

    mac 系統(tǒng)常用的軟件安裝工具就是 homebrew.那么通過brew怎么安裝mongodb呢?下面小編給大家分享mac下使用brew 安裝mongodb的方法教程,一起看看吧
    2016-10-10
  • Mongodb多鍵索引中索引邊界的混合問題小結

    Mongodb多鍵索引中索引邊界的混合問題小結

    Mongodb為提高數(shù)組的查詢效率,針對數(shù)組構建了多鍵索引,而Mongodb在應用多鍵數(shù)組查詢時,也通過構建,減少數(shù)組查詢的數(shù)值范圍,來提高查詢性能,本文結合Mongodb官方文檔,闡述Mongodb在使用多鍵索引時的邊界優(yōu)化,感興趣的朋友一起看看吧
    2024-07-07
  • MongoDB的備份與恢復

    MongoDB的備份與恢復

    這篇文章主要介紹了MongoDB的備份與恢復,幫助大家更好的理解和學習使用MongoDB,感興趣的朋友可以了解下
    2021-03-03
  • MongoDB 簡單入門教程(安裝、基本概念、創(chuàng)建用戶)

    MongoDB 簡單入門教程(安裝、基本概念、創(chuàng)建用戶)

    這篇文章主要介紹了MongoDB 簡單入門教程(安裝、基本概念、創(chuàng)建用戶)的相關資料,幫助大家更好的理解和學習使用MongoDB數(shù)據(jù)庫,感興趣的朋友可以了解下
    2021-03-03
  • MongoDB數(shù)據(jù)庫性能監(jiān)控詳解

    MongoDB數(shù)據(jù)庫性能監(jiān)控詳解

    MongoDB作為圖片和文檔的存儲數(shù)據(jù)庫,為啥不直接存MySQL里,還要搭個MongoDB集群,麻不麻煩?這篇文章就帶你介紹MongoDB數(shù)據(jù)庫性能監(jiān)控,感興趣的同學可以參考閱讀
    2023-03-03
  • mongodb中ObjectId和ObjectIdr實現(xiàn)

    mongodb中ObjectId和ObjectIdr實現(xiàn)

    本文主要介紹了mongodb中ObjectId和ObjectIdr實現(xiàn)
    2023-12-12
  • MongoDB 主從復制實例講解

    MongoDB 主從復制實例講解

    這篇文章主要介紹了MongoDB 主從復制實例講解,主從復制可以用來數(shù)據(jù)庫備份,故障恢復,讀寫分離,有興趣的小伙伴可以參考下本文
    2016-10-10

最新評論