婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MongoDB聚合group的操作指南

MongoDB聚合group的操作指南

熱門標簽:智能外呼系統(tǒng)官網(wǎng) 青白江400企業(yè)電話申請 呼和浩特外呼系統(tǒng)原理是什么 內(nèi)蒙古營銷智能外呼系統(tǒng)哪個好 長沙電銷外呼防封卡是什么 crm外呼系統(tǒng)聯(lián)系方式 外呼線路資源屬于電信業(yè)務(wù)嗎 河南電話外呼系統(tǒng)招商 小裙科技電銷機器人怎樣

MongoDB 聚合

MongoDB中聚合(aggregate)主要用于處理數(shù)據(jù)(諸如統(tǒng)計平均值,求和等),并返回計算后的數(shù)據(jù)結(jié)果。有點類似sql語句中的 count(*)。

基本語法為:db.collection.aggregate( [ stage1>, stage2>, ... ] )

現(xiàn)在在mycol集合中有以下數(shù)據(jù):

{ "_id" : 1, "name" : "tom", "sex" : "男", "score" : 100, "age" : 34 }
{ "_id" : 2, "name" : "jeke", "sex" : "男", "score" : 90, "age" : 24 }
{ "_id" : 3, "name" : "kite", "sex" : "女", "score" : 40, "age" : 36 }
{ "_id" : 4, "name" : "herry", "sex" : "男", "score" : 90, "age" : 56 }
{ "_id" : 5, "name" : "marry", "sex" : "女", "score" : 70, "age" : 18 }
{ "_id" : 6, "name" : "john", "sex" : "男", "score" : 100, "age" : 31 }

1、$sum計算總和。

  Sql: select sex,count(*) frommycol group by sex

  MongoDb: db.mycol.aggregate([{$group: {_id: '$sex', personCount: {$sum: 1}}}])

  Sql: select sex,sum(score) totalScore frommycol group by sex

  MongoDb: db.mycol.aggregate([{$group: {_id: '$sex', totalScore: {$sum: '$score'}}}])

2、$avg 計算平均值

  Sql: select sex,avg(score) avgScore frommycol group by sex

  Mongodb: db.mycol.aggregate([{$group: {_id: '$sex', avgScore: {$avg: '$score'}}}])

3、$max獲取集合中所有文檔對應(yīng)值得最大值。

  Sql: select sex,max(score) maxScore frommycol group by sex

  Mongodb: db.mycol.aggregate([{$group: {_id: '$sex', maxScore: {$max: '$score'}}}])

4、$min 獲取集合中所有文檔對應(yīng)值得最小值。

  Sql: select sex,min(score) minScore frommycol group by sex

  Mongodb: db.mycol.aggregate([{$group: {_id: '$sex', minScore: {$min: '$score'}}}])

5、$push 把文檔中某一列對應(yīng)的所有數(shù)據(jù)插入值到一個數(shù)組中。

  Mongodb: db.mycol.aggregate([{$group: {_id: '$sex', scores : {$push: '$score'}}}])

6、$addToSet把文檔中某一列對應(yīng)的所有數(shù)據(jù)插入值到一個數(shù)組中,去掉重復(fù)的

  db.mycol.aggregate([{$group: {_id: '$sex', scores : {$addToSet: '$score'}}}])

7、 $first根據(jù)資源文檔的排序獲取第一個文檔數(shù)據(jù)。

  db.mycol.aggregate([{$group: {_id: '$sex', firstPerson : {$first: '$name'}}}])

8、 $last根據(jù)資源文檔的排序獲取最后一個文檔數(shù)據(jù)。

  db.mycol.aggregate([{$group: {_id: '$sex', lastPerson : {$last: '$name'}}}])

9、全部統(tǒng)計null

  db.mycol.aggregate([{$group:{_id:null,totalScore:{$push:'$score'}}}])

例子

  現(xiàn)在在t2集合中有以下數(shù)據(jù):

  { "country" : "china", "province" : "sh", "userid" : "a" }
  { "country" : "china", "province" : "sh", "userid" : "b" }
  { "country" : "china", "province" : "sh", "userid" : "a" }
  { "country" : "china", "province" : "sh", "userid" : "c" }
  { "country" : "china", "province" : "bj", "userid" : "da" }
  { "country" : "china", "province" : "bj", "userid" : "fa" }

  需求是統(tǒng)計出每個country/province下的userid的數(shù)量(同一個userid只統(tǒng)計一次)

  過程如下。

  首先試著這樣來統(tǒng)計:

  db.t2.aggregate([{$group:{"_id":{"country":"$country","prov":"$province"},"number":{$sum:1}}}])

  結(jié)果是錯誤的:

  原因是,這樣來統(tǒng)計不能區(qū)分userid相同的情況 (上面的數(shù)據(jù)中sh有兩個 userid = a)

  為了解決這個問題,首先執(zhí)行一個group,其id 是 country, province, userid三個field:

  db.t2.aggregate([ { $group: {"_id": { "country" : "$country", "province": "$province" , "uid" : "$userid" } } } ])

  可以看出,這步的目的是把相同的userid只剩下一個。

  然后第二步,再第一步的結(jié)果之上再執(zhí)行統(tǒng)計:

  db.t2.aggregate([ 
  { $group: {"_id": { "country" : "$country", "province": "$province" , "uid" : "$userid" } } } , 
  { $group: {"_id": { "country" : "$_id.country", "province": "$_id.province" }, count : { $sum : 1 } } } 
  ])

  這回就對了

  加入一個$project操作符,把_id去掉

  db.t2.aggregate([ { $group: {"_id": { "country" : "$country", "province": "$province" , "uid" : "$userid" } } } , 
  { $group: {"_id": { "country" : "$_id.country", "province": "$_id.province" }, count: { $sum : 1 } } }, 
  { $project : {"_id": 0, "country" : "$_id.country", "province" : "$_id.province", "count" : 1}} 
  ])

  最終結(jié)果如下:

管道的概念

管道在Unix和Linux中一般用于將當前命令的輸出結(jié)果作為下一個命令的參數(shù)。

MongoDB的聚合管道將MongoDB文檔在一個管道處理完畢后將結(jié)果傳遞給下一個管道處理。管道操作是可以重復(fù)的。

表達式:處理輸入文檔并輸出。表達式是無狀態(tài)的,只能用于計算當前聚合管道的文檔,不能處理其它的文檔。

這里我們介紹一下聚合框架中常用的幾個操作:

  • $project:修改輸入文檔的結(jié)構(gòu)。可以用來重命名、增加或刪除域,也可以用于創(chuàng)建計算結(jié)果以及嵌套文檔。
  • match:用于過濾數(shù)據(jù),只輸出符合條件的文檔。match使用MongoDB的標準查詢操作。
  • $limit:用來限制MongoDB聚合管道返回的文檔數(shù)。
  • $skip:在聚合管道中跳過指定數(shù)量的文檔,并返回余下的文檔。
  • $unwind:將文檔中的某一個數(shù)組類型字段拆分成多條,每條包含數(shù)組中的一個值。
  • $group:將集合中的文檔分組,可用于統(tǒng)計結(jié)果。
  • $sort:將輸入文檔排序后輸出。
  • $geoNear:輸出接近某一地理位置的有序文檔。

1、$project實例

  db.mycol.aggregate({$project:{name : 1, score : 1}})

  這樣的話結(jié)果中就只還有_id,name和score三個字段了,默認情況下_id字段是被包含的,如果要想不包含_id話可以這樣:

  db.mycol.aggregate({$project:{_id : 0, name : 1, score : 1}})

2、$match實例

  $match用于獲取分數(shù)大于30小于并且小于100的記錄,然后將符合條件的記錄送到下一階段$group管道操作符進行處理

  db.mycol.aggregate([{$match :{score: {$gt: 30, $lt: 100}}},{$group:{_id:'$sex',count:{$sum:1}}}]) 

總結(jié)

到此這篇關(guān)于MongoDB聚合group的文章就介紹到這了,更多相關(guān) MongoDB聚合group內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • SQL分組函數(shù)group by和聚合函數(shù)(COUNT、MAX、MIN、AVG、SUM)的幾點說明
  • pandas分組聚合詳解
  • postgresql使用filter進行多維度聚合的解決方法

標簽:黃石 呼倫貝爾 安順 池州 楚雄 舟山 白山 菏澤

巨人網(wǎng)絡(luò)通訊聲明:本文標題《MongoDB聚合group的操作指南》,本文關(guān)鍵詞  MongoDB,聚合,group,的,操作指南,;如發(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聚合group的操作指南》相關(guān)的同類信息!
  • 本頁收集關(guān)于MongoDB聚合group的操作指南的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    免费欧美高清视频| 国内一区二区视频| 日韩欧美电影在线| 欧美老女人第四色| 日韩视频一区二区| 亚洲1区2区3区视频| 肉肉av福利一精品导航| 久久精品国产精品亚洲精品| 国产精品正在播放| 一本久道中文字幕精品亚洲嫩| 成人精品在线视频观看| 欧美三级电影在线观看| 精品精品国产高清a毛片牛牛| 久久看人人爽人人| 一区av在线播放| 美女视频黄久久| 成人高清免费观看| 欧美私模裸体表演在线观看| 日韩欧美一级二级三级久久久| 日本一区二区三区电影| 午夜精品一区二区三区免费视频| 狠狠色综合播放一区二区| 在线观看一区二区精品视频| yourporn久久国产精品| 91精品国产aⅴ一区二区| 国产精品伦理一区二区| 亚洲国产精品欧美一二99| 午夜精品久久一牛影视| 成人av电影在线| 国产美女av一区二区三区| 91麻豆视频网站| 欧美精品一区二区三区视频| 亚洲超碰精品一区二区| 国产美女精品人人做人人爽| 91久久精品一区二区三区| 久久精子c满五个校花| 亚洲国产一区二区视频| 国产99精品国产| 欧洲精品中文字幕| 久久久久国产精品人| 蜜桃视频免费观看一区| 欧美性三三影院| 亚洲欧洲99久久| 天天综合网天天综合色| 99精品在线观看视频| 久久众筹精品私拍模特| 免费日韩伦理电影| 在线视频国内自拍亚洲视频| 色偷偷88欧美精品久久久| 日韩欧美一级二级| 一级中文字幕一区二区| 91丝袜美腿高跟国产极品老师| 中文字幕亚洲电影| 日本不卡在线视频| 欧美色精品在线视频| 一区二区三区精品视频| 国产精品91一区二区| 欧美tickling网站挠脚心| 亚洲成人久久影院| 在线观看av不卡| 亚洲精品中文在线影院| 91豆麻精品91久久久久久| 亚洲最新视频在线观看| 在线播放亚洲一区| 国产精品三级在线观看| 99精品视频一区| 亚洲人成影院在线观看| 欧美性猛交xxxx黑人交| 全部av―极品视觉盛宴亚洲| 欧美日韩精品免费| 免费在线看一区| 久久久久久久久久久久久女国产乱 | 麻豆久久久久久久| 日韩一区二区视频| 国产午夜精品一区二区三区视频| 国产一区二区三区四区五区美女| 中文幕一区二区三区久久蜜桃| 91美女在线看| 69堂成人精品免费视频| 久久国产精品99久久久久久老狼| 国产午夜精品一区二区三区嫩草 | 一区二区三区在线视频观看| 风间由美一区二区三区在线观看| fc2成人免费人成在线观看播放| 欧美三级一区二区| 国产精品素人一区二区| 国产精品综合视频| 中文字幕一区二| 色综合久久综合网| 国产午夜精品久久久久久免费视| 日本视频在线一区| 91麻豆精品国产91久久久久久 | 亚洲风情在线资源站| 欧美中文字幕一区| 日本大胆欧美人术艺术动态| 91精品国产综合久久久久久久| 奇米影视一区二区三区| 欧美国产综合一区二区| 欧美色图12p| 免费高清视频精品| 精品99999| 丁香婷婷综合色啪| 国产精品狼人久久影院观看方式| 欧美中文字幕亚洲一区二区va在线 | 在线播放亚洲一区| 日本不卡一二三| 综合激情成人伊人| 制服丝袜中文字幕一区| 成人网在线播放| 美女诱惑一区二区| 一级女性全黄久久生活片免费| 日韩精品一区二区三区四区视频| 成人精品高清在线| 久久99精品国产麻豆婷婷洗澡| 成人欧美一区二区三区小说| 欧美高清一级片在线观看| 欧美剧情片在线观看| 欧洲国内综合视频| 91女人视频在线观看| 国产乱国产乱300精品| 午夜国产精品一区| 国产精品女主播av| 中文字幕在线一区| 中文av一区二区| 午夜欧美视频在线观看| 亚洲午夜免费电影| 日韩1区2区3区| 国产福利不卡视频| 成人综合在线观看| 99久久er热在这里只有精品15 | 成人网页在线观看| 色婷婷av一区二区三区软件| 青娱乐精品视频在线| 另类综合日韩欧美亚洲| 国产精品一卡二卡| 国产成人自拍高清视频在线免费播放| 国产盗摄精品一区二区三区在线| 国产成人av福利| 在线中文字幕一区| 精品日韩在线一区| 亚洲超碰精品一区二区| 国产不卡一区视频| 欧美日韩三级一区| 国产精品久久久久四虎| 青青国产91久久久久久 | 夜夜操天天操亚洲| 老司机免费视频一区二区三区| 91玉足脚交白嫩脚丫在线播放| 欧美电影一区二区三区| 亚洲综合图片区| 国产在线播放一区| 日韩视频一区二区| 理论片日本一区| 欧美精品自拍偷拍| 五月综合激情日本mⅴ| 欧美日韩大陆一区二区| 日韩国产高清影视| 日韩一区二区在线看片| 亚洲h动漫在线| 欧美日韩美少妇| 蜜桃视频一区二区| 亚洲精品一区二区三区99| 青娱乐精品视频| 精品乱人伦小说| 激情久久五月天| 久久你懂得1024| 91视视频在线观看入口直接观看www| 欧美国产一区二区在线观看| 成人免费va视频| 亚洲视频综合在线| 欧美在线观看视频一区二区三区| 中文字幕日韩一区| 欧美性色黄大片| 国产成人在线视频免费播放| 亚洲综合在线电影| 精品国产sm最大网站免费看| 风流少妇一区二区| 亚州成人在线电影| 国产欧美日韩在线观看| 午夜不卡av在线| 国产精品成人免费在线| 久久综合色8888| 91精品国产综合久久婷婷香蕉| 91免费观看视频| 成人av网在线| 国产91在线看| 久久99精品久久久久婷婷| 亚洲日本乱码在线观看| 国产亚洲婷婷免费| 久久久不卡网国产精品一区| 欧美日韩亚洲高清一区二区| 色婷婷综合五月| 色久综合一二码| 91香蕉视频mp4| 91黄色在线观看| 成人黄色软件下载| 成人一级黄色片| 成人免费av网站| 91传媒视频在线播放| 欧美系列日韩一区|