亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MongoDB > 正文

淺析mongodb中group分組

2020-10-29 18:51:05
字體:
來源:轉載
供稿:網友

group做的聚合有些復雜。先選定分組所依據的鍵,此后MongoDB就會將集合依據選定鍵值的不同分成若干組。然后可以通過聚合每一組內的文檔,產生一個結果文檔。
和數據庫一樣group常常用于統計。MongoDB的group還有很多限制,如:返回結果集不能超過16M, group操作不會處理超過10000個唯一鍵,好像還不能利用索引[不很確定]。

Group大約需要一下幾個參數。

 1.key:用來分組文檔的字段。和keyf兩者必須有一個
 2.keyf:可以接受一個javascript函數。用來動態的確定分組文檔的字段。和key兩者必須有一個
 3.initial:reduce中使用變量的初始化
 4.reduce:執行的reduce函數。函數需要返回值。
 5.cond:執行過濾的條件。
 6.finallize:在reduce執行完成,結果集返回之前對結果集最終執行的函數。可選的。
下面介紹一個實例:
先插入測試數據:

for(var i=1; i<20; i++){var num=i%6;db.test.insert({_id:i,name:"user_"+i,age:num});}

1.普通分組查詢

db.test.group({            key:{age:true},            initial:{num:0},            $reduce:function(doc,prev){               prev.num++            }           });db.runCommand({group:{ns:"test",key:{age:true},initial:{num:0},$reduce:function(doc,prev){prev.num++}}});

2.篩選后再分組

db.test.group({key:{age:true},initial:{num:0},$reduce:function(doc,prev){prev.num++},condition:{age:{$gt:2}}});db.runCommand({group:{ns:"test",key:{age:true},initial:{num:0},$reduce:function(doc,prev){prev.num++},condition:{age:{$gt:2}}}});

3、普通的$where查詢:

db.test.find({$where:function(){return this.age>2;}});

group聯合$where查詢

db.test.group({key:{age:true},initial:{num:0},$reduce:function(doc,prev){prev.num++},condition:{$where:function(){return this.age>2;}}});

4、使用函數返回值分組

//注意,$keyf指定的函數一定要返回一個對象db.test.group({$keyf:function(doc){return {age:doc.age};},initial:{num:0},$reduce:function(doc,prev){prev.num++}});db.runCommand({group:{ns:"test",$keyf:function(doc){return {age:doc.age};},initial:{num:0},$reduce:function(doc,prev){prev.num++}}});

5.使用終結器

db.test.group({$keyf:function(doc){return {age:doc.age};},initial:{num:0},$reduce:function(doc,prev){prev.num++},finalize: function(doc){ doc.count=doc.num;delete doc.num; }});db.runCommand({group:{ns:"test",$keyf:function(doc){return {age:doc.age};},initial:{num:0},$reduce:function(doc,prev){prev.num++},finalize: function(doc){ doc.count=doc.num;delete doc.num; }}});

有關MapReduce

//首先插入測試數據for(var i=1;i<21;i++){db.test.insert({_id:i,name:'mm'+i});}//進行mapreducedb.runCommand({mapreduce:'test',map:function(){emit(this.name.substr(0,3),this);},reduce:function(key,vals){return vals[0];}, //注意:vals是一個Object對象而不是數組out:'wq'});

注意:

1.mapreduce是根據map函數里調用的emit函數的第一個參數來進行分組的
2.僅當根據分組鍵分組后一個鍵匹配多個文檔,才會將key和文檔集合交由reduce函數處理。例如:

db.runCommand({mapreduce:'test',map:function(){emit(this.name.substr(0,3),this);},reduce:function(key,vals){return 'wq';},out:'wq'});

執行mapreduce命令后,再查看wq表數據:

db.wq.find(){ "_id" : "mm1", "value" : "wq" }{ "_id" : "mm2", "value" : "wq" }{ "_id" : "mm3", "value" : { "_id" : 3, "name" : "mm3" } }{ "_id" : "mm4", "value" : { "_id" : 4, "name" : "mm4" } }{ "_id" : "mm5", "value" : { "_id" : 5, "name" : "mm5" } }{ "_id" : "mm6", "value" : { "_id" : 6, "name" : "mm6" } }{ "_id" : "mm7", "value" : { "_id" : 7, "name" : "mm7" } }{ "_id" : "mm8", "value" : { "_id" : 8, "name" : "mm8" } }{ "_id" : "mm9", "value" : { "_id" : 9, "name" : "mm9" } }

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产亚洲一区精品| 久久精品视频网站| 欧美性猛交xxxx免费看| 91色p视频在线| 欧美国产高跟鞋裸体秀xxxhd| 欧美午夜影院在线视频| 欧美日韩亚洲系列| 亚洲香蕉av在线一区二区三区| 精品福利在线观看| 97在线日本国产| 久久久爽爽爽美女图片| 欧美丰满老妇厨房牲生活| 欧美日韩国产在线看| 国产精品高潮呻吟久久av黑人| 国产成人精品电影| 欧美亚洲免费电影| 日韩电视剧免费观看网站| 国产精品亚洲激情| 国产日韩综合一区二区性色av| 粉嫩老牛aⅴ一区二区三区| 国产精品爽黄69| 日韩高清电影免费观看完整| 久久综合伊人77777尤物| 亚洲人成在线播放| 亚洲视频视频在线| 草民午夜欧美限制a级福利片| 欧美最近摘花xxxx摘花| 国产一区二区三区视频在线观看| 成人激情在线观看| 日韩在线观看免费高清| 久久精品国产免费观看| 亚洲天堂日韩电影| 久久91亚洲精品中文字幕| 海角国产乱辈乱精品视频| 久久久亚洲福利精品午夜| 91精品久久久久久综合乱菊| 国产欧美在线观看| www.美女亚洲精品| 欧美日韩国产成人在线观看| 亚洲丁香婷深爱综合| 岛国av午夜精品| 国产精品美女久久久久av超清| 亚洲欧美日韩一区在线| 欧美洲成人男女午夜视频| 欧美日韩一区二区免费在线观看| 大量国产精品视频| 久久福利网址导航| 亚洲自拍中文字幕| 成人在线播放av| 国产极品精品在线观看| 亚洲激情视频在线观看| 欧美高清视频在线播放| 91丝袜美腿美女视频网站| 国产精品久久97| 久久av中文字幕| 欧美精品激情在线| 久久久久久久一区二区| 日本精品久久久久久久| 欧美日韩电影在线观看| 欧美在线观看网站| 欧美主播福利视频| 国产精品美女久久久久久免费| 亚洲色图13p| 在线播放日韩精品| 青青草原成人在线视频| 清纯唯美亚洲综合| 人妖精品videosex性欧美| 欧美激情一区二区三级高清视频| 日本不卡视频在线播放| 在线观看欧美视频| 成人国产精品久久久久久亚洲| 国产伦精品免费视频| 精品国产一区二区在线| 日本精品视频在线观看| 欧美日韩国产va另类| 久久香蕉国产线看观看av| 久久99亚洲热视| 亚洲一区二区三区在线视频| 永久555www成人免费| 91精品国产电影| 欧美性猛交xxxx乱大交蜜桃| 亚洲一区二区三区在线视频| 亚洲精品福利在线| 亚洲美女av在线| 日韩精品在线视频美女| 亚洲第一福利网站| 亚洲第一精品久久忘忧草社区| 国产91在线播放| 国产成人在线视频| 国语自产精品视频在线看抢先版图片| 亚洲女人天堂成人av在线| 精品一区二区亚洲| 亚洲xxxxx电影| 成人国产精品日本在线| 亚洲高清福利视频| 91成人在线播放| 欧美在线一级视频| 精品成人69xx.xyz| 国产精品久久91| 性色av一区二区三区在线观看| 91久久久精品| 5252色成人免费视频| 夜色77av精品影院| 国产成人综合精品在线| 欧美xxxx做受欧美| 欧美激情视频一区二区三区不卡| 亚洲精品视频免费在线观看| 国产精品自拍网| 精品毛片三在线观看| 色婷婷综合成人| 国产精品久久久久久久美男| 久久手机免费视频| 国产伦精品免费视频| 成人亲热视频网站| 国内精品中文字幕| 性亚洲最疯狂xxxx高清| 国产一区二区三区在线观看网站| 欧美激情第99页| 成人午夜一级二级三级| 欧美性猛交99久久久久99按摩| 亚洲美女动态图120秒| 国产97在线播放| 精品国产欧美成人夜夜嗨| 亚洲第一男人天堂| 久久精彩免费视频| 亚洲午夜色婷婷在线| 亚洲女人天堂视频| 欧美日韩国产区| 狠狠躁夜夜躁久久躁别揉| 欧洲中文字幕国产精品| 久久久久99精品久久久久| 国产成人精品视| 亚洲一区二区久久| 国产精品福利无圣光在线一区| 欧美激情视频网| 亚洲精品成人久久| 亚洲一区精品电影| 亚洲丝袜在线视频| 久久久久久久久久婷婷| 午夜精品一区二区三区在线视| 最近2019年日本中文免费字幕| 久久人91精品久久久久久不卡| 欧美日韩亚洲激情| 欧美激情精品久久久久久| 亚洲大胆人体av| 国产精品香蕉av| 色无极亚洲影院| 欧美专区国产专区| 亚洲资源在线看| 欧美精品在线网站| 国产一级揄自揄精品视频| 欧美自拍视频在线观看| 国产成人欧美在线观看| www.日韩.com| 精品国产网站地址| 成人中文字幕+乱码+中文字幕| 欧美猛交免费看| 国产精品久久激情| 久久在线免费观看视频| 韩国欧美亚洲国产| 久久久久久国产精品三级玉女聊斋| 国产z一区二区三区| 精品露脸国产偷人在视频| 久久噜噜噜精品国产亚洲综合|