最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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í)行,然后再將結(jié)果合并成最終結(jié)果(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ù)的任務(wù)就是將key- values變成key-value,也就是把values數(shù)組變成一個單一的值value。
3. out 統(tǒng)計結(jié)果存放集合 (不指定則使用臨時集合,在客戶端斷開后自動刪除)。
4. query 一個篩選條件,只有滿足條件的文檔才會調(diào)用map函數(shù)。(query。limit,sort可以隨意組合)
5. sort 和limit結(jié)合的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í)行結(jié)果:

{
  "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
}

查看返回的結(jié)果:

db.result.find()

相關(guān)文章

  • MongoDB基礎(chǔ)命令以及操作示例詳解

    MongoDB基礎(chǔ)命令以及操作示例詳解

    Mongodb:是一種NoSQL數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關(guān)于MongoDB基礎(chǔ)命令以及操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-08-08
  • mongoDB重裝或升級版本后,啟動失敗原因及解決方法

    mongoDB重裝或升級版本后,啟動失敗原因及解決方法

    這篇文章主要為大家分享一下重裝mongodb或者升級mongdb版本后,重啟啟動也沒有任何錯誤提示,但是查看為失敗failed狀態(tài),沒有啟動成功問題的解決方法
    2024-05-05
  • 高效mongodb的php分頁類(不使用skip)

    高效mongodb的php分頁類(不使用skip)

    這篇文章主要介紹了高效mongodb的php分頁類,并且沒有使用mongodb的skip來實現(xiàn)分頁,需要的朋友可以參考下
    2014-05-05
  • 關(guān)于mongodb初始化以及配置方式

    關(guān)于mongodb初始化以及配置方式

    這篇文章主要介紹了關(guān)于mongodb初始化以及配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • MongoDB Remove函數(shù)的3個常見用法

    MongoDB Remove函數(shù)的3個常見用法

    這篇文章主要介紹了MongoDB Remove函數(shù)的3個常見用法,需要的朋友可以參考下
    2014-05-05
  • MongoDB游標超時問題的4種解決方法

    MongoDB游標超時問題的4種解決方法

    這篇文章主要給大家介紹了關(guān)于MongoDB游標超時問題的4種解決方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MongoDB具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-09-09
  • MongoDB高可用與分片

    MongoDB高可用與分片

    最近項目在使用MongoDB作為圖片和文檔的存儲數(shù)據(jù)庫,為啥不直接存MySQL里,還要搭個MongoDB集群,麻不麻煩?讓我們一起,一探究竟,繼續(xù)學習MongoDB高可用和片鍵策略,實現(xiàn)快速入門,感興趣的小伙伴可以參考閱讀
    2023-04-04
  • Mongodb增加、移除Shard Server實例

    Mongodb增加、移除Shard Server實例

    這篇文章主要介紹了Mongodb增加、移除Shard Server實例,shard服務(wù)器(Shard Server).Shard服務(wù)器是存儲實際數(shù)據(jù)的分片,每個Shard可以是一個mongod實例,也可以是一組mongod實例構(gòu)成的Replica Sets,需要的朋友可以參考下
    2015-01-01
  • MongoDB Map-Reduce 使用方法及原理解析

    MongoDB Map-Reduce 使用方法及原理解析

    MongoDB Map-Reduce 是一種強大的數(shù)據(jù)處理模式,可以用于對大量數(shù)據(jù)進行批量處理和聚合操作,本文將詳細介紹 MongoDB Map-Reduce 的原理、使用方法和最佳實踐,需要的朋友可以參考下
    2024-07-07
  • mongoDB 多重數(shù)組查詢(AngularJS綁定顯示 nodejs)

    mongoDB 多重數(shù)組查詢(AngularJS綁定顯示 nodejs)

    這篇文章主要介紹了mongoDB 多重數(shù)組查詢(AngularJS綁定顯示 nodejs),需要的朋友可以參考下
    2017-06-06

最新評論

冕宁县| 苏尼特右旗| 巫山县| 简阳市| 崇阳县| 满城县| 博乐市| 高淳县| 龙江县| 满洲里市| 金门县| 石台县| 博客| 万州区| 祁门县| 财经| 汕尾市| 阿拉善左旗| 安庆市| 皮山县| 广灵县| 茂名市| 平湖市| 东安县| 巴青县| 乐亭县| 余干县| 德昌县| 临泉县| 延长县| 日喀则市| 博客| 安丘市| 高陵县| 商都县| 崇信县| 得荣县| 象山县| 灵山县| 南皮县| 丁青县|