校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

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

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

熱門標簽:智能電銷機器人銷售話術 福州電銷機器人源代碼 南京400電話怎樣辦理 企業智能外呼系統價格多少 兗州電話外呼營銷系統 機器人外呼系統軟件存在問題 徐州ai電銷機器人原理 高德地圖標注商戶位置 沈陽營銷電銷機器人招商
// 準備測試數據
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函數
// 按照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中的用戶姓名和性別,并統計每組的人數
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參數選項:

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

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

標簽:吉安 鶴崗 昭通 本溪 邯鄲 丹東 大理 景德鎮

巨人網絡通訊聲明:本文標題《MongoDB學習筆記之分組(group)使用示例》,本文關鍵詞  MongoDB,學習,筆記,之,分組,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MongoDB學習筆記之分組(group)使用示例》相關的同類信息!
  • 本頁收集關于MongoDB學習筆記之分組(group)使用示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 易门县| 徐汇区| 泰顺县| 泾川县| 盐城市| 海原县| 上栗县| 宁强县| 灵丘县| 曲阜市| 西和县| 称多县| 六枝特区| 石林| 虞城县| 缙云县| 陕西省| 桐庐县| 平安县| 秦皇岛市| 防城港市| 木里| 开原市| 太仓市| 遂昌县| 新绛县| 饶河县| 南丰县| 安福县| 尤溪县| 黔南| 洛阳市| 漳平市| 天柱县| 婺源县| 休宁县| 安龙县| 金塔县| 宁化县| 常州市| 江永县|