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

MongoDB學習筆記之分組(group)使用示例

 更新時間:2015年07月04日 15:38:51   投稿:junjie  
這篇文章主要介紹了MongoDB學習筆記之分組(group)使用示例,本文直接給出一組測試數(shù)據(jù),然后練習分組的基本使用,需要的朋友可以參考下
// 準備測試數(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
  })
}

// group函數(shù)
// 按照class進行分組,顯示每個class中的用戶姓名和性別
db.user.group({
  key: {"class": true},
  initial: {"person": []},
  reduce: function(cur, prev) {
    prev.person.push({name: cur.name, sex: cur.sex, age: cur.age});
  }
});

// 對age>25的用戶,按照class進行分組,顯示每個class中的用戶姓名和性別,并統(tǒng)計每組的人數(shù)
db.user.group({
  key: {"class": true},
  initial: {"person": []},
  reduce: function(doc, out){
    out.person.push({name: doc.name, sex: doc.sex, age: doc.age});
  },
  finalize: function(out){
    out.count = out.person.length;
  },
  condition: {"age": {$gt: 25}}
})

// 分組計算每個class中,chinese最大值和最小值
db.user.group({
  key: {"class": true},
  initial: {"chinese_min": 0, "chinese_max":0 },
  reduce: function(doc, out){
    out.chinese_min = doc.chinese;
    out.chinese_min = doc.chinese;

    out.chinese_min = Math.min(out.chinese_min, doc.chinese);
    out.chinese_max = Math.max(out.chinese_max, doc.chinese)
  },
})

// 利用分組,計算每個總成績和成績平均值
db.user.group({
  key: {"_id" : true},
  initial: {name:"", total: 0, avg: 0},
  reduce: function(doc, out){
    out.name = doc.name;
    out.total = doc.chinese + doc.math + doc.english;
    out.avg = Math.floor(out.total / 3);
  }
})

group參數(shù)選項:

1.key: 這個就是分組的key
2.initial: 每組都分享一個初始化函數(shù),特別注意:是每一組initial函數(shù)。
3.reduce: 這個函數(shù)的第一個參數(shù)是當前的文檔對象,第二個參數(shù)是上一次function操作的累計對象。有多少個文檔, $reduce就會調(diào)用多少次。
4.condition: 這個就是過濾條件。
5.finalize: 這是個函數(shù),每一組文檔執(zhí)行完后,多會觸發(fā)此方法。

相關文章

  • MongoDB數(shù)據(jù)庫的日志文件深入分析

    MongoDB數(shù)據(jù)庫的日志文件深入分析

    這篇文章主要給大家介紹了關于MongoDB數(shù)據(jù)庫日志的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MongoDB具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-09-09
  • Windows安裝壓縮版MongoDB的教程

    Windows安裝壓縮版MongoDB的教程

    MongoDB 是一個介于關系數(shù)據(jù)庫和非關系數(shù)據(jù)庫之間的產(chǎn)品,是非關系數(shù)據(jù)庫當中功能最豐富,最像關系數(shù)據(jù)庫的。這篇文章主要介紹了Windows安裝壓縮版MongoDB的教程,需要的朋友可以參考下
    2019-12-12
  • mongodb數(shù)據(jù)庫入門之CURD簡單操作示例

    mongodb數(shù)據(jù)庫入門之CURD簡單操作示例

    這篇文章主要介紹了mongodb數(shù)據(jù)庫入門之CURD簡單操作,結(jié)合簡單示例形式分析了MongoDB數(shù)據(jù)庫基本的CURD增刪改查相關操作技巧與注意事項,需要的朋友可以參考下
    2019-10-10
  • MongoDB的chunk詳解

    MongoDB的chunk詳解

    這篇文章主要介紹了MongoDB的chunk的相關資料,幫助大家更好的理解和學習使用MongoDB數(shù)據(jù)庫,感興趣的朋友可以了解下
    2021-04-04
  • MongoDB添加仲裁節(jié)點報錯:replica set IDs do not match的解決方法

    MongoDB添加仲裁節(jié)點報錯:replica set IDs do not match的解決方法

    這篇文章主要給大家介紹了關于MongoDB添加仲裁節(jié)點報錯:replica set IDs do not match的解決方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧
    2018-11-11
  • 最新評論