主頁 > 知識庫 > MongoDB學(xué)習(xí)筆記之分組(group)使用示例

MongoDB學(xué)習(xí)筆記之分組(group)使用示例

熱門標(biāo)簽:智能電銷機(jī)器人銷售話術(shù) 福州電銷機(jī)器人源代碼 南京400電話怎樣辦理 企業(yè)智能外呼系統(tǒng)價格多少 兗州電話外呼營銷系統(tǒng) 機(jī)器人外呼系統(tǒng)軟件存在問題 徐州ai電銷機(jī)器人原理 高德地圖標(biāo)注商戶位置 沈陽營銷電銷機(jī)器人招商
// 準(zhǔn)備測試數(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進(jìn)行分組,顯示每個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進(jìn)行分組,顯示每個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ù)選項(xiàng):

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

您可能感興趣的文章:
  • MongoDB 學(xué)習(xí)筆記(一)-MongoDB配置
  • MongoDB學(xué)習(xí)筆記(六) MongoDB索引用法和效率分析
  • MongoDB學(xué)習(xí)筆記(五) MongoDB文件存取操作
  • MongoDB學(xué)習(xí)筆記—Linux下搭建MongoDB環(huán)境
  • MongoDB學(xué)習(xí)筆記(一) MongoDB介紹與安裝方法
  • MongoDB學(xué)習(xí)筆記(三) 在MVC模式下通過Jqgrid表格操作MongoDB數(shù)據(jù)
  • MongoDB學(xué)習(xí)筆記(四) 用MongoDB的文檔結(jié)構(gòu)描述數(shù)據(jù)關(guān)系
  • MongoDB學(xué)習(xí)筆記(二) 通過samus驅(qū)動實(shí)現(xiàn)基本數(shù)據(jù)操作
  • Windows下MongoDB的下載安裝、環(huán)境配置教程圖解
  • MongoDB的下載、安裝與部署方法
  • MongoDB系列教程(三):Windows中下載和安裝MongoDB
  • mongodb數(shù)據(jù)庫入門學(xué)習(xí)筆記之下載、安裝、啟動、連接操作解析

標(biāo)簽:吉安 鶴崗 昭通 本溪 邯鄲 丹東 大理 景德鎮(zhèn)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MongoDB學(xué)習(xí)筆記之分組(group)使用示例》,本文關(guān)鍵詞  MongoDB,學(xué)習(xí),筆記,之,分組,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MongoDB學(xué)習(xí)筆記之分組(group)使用示例》相關(guān)的同類信息!
  • 本頁收集關(guān)于MongoDB學(xué)習(xí)筆記之分組(group)使用示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章