最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于mongoDB的聚合操作_aggregate()歸納詳解

 更新時(shí)間:2023年07月07日 10:40:01   作者:侯小啾  
這篇文章主要介紹了關(guān)于mongoDB的聚合操作_aggregate()歸納詳解,關(guān)系是關(guān)聯(lián)關(guān)系的一種,是強(qiáng)的關(guān)聯(lián)關(guān)系,聚合是整體和個(gè)體之間的關(guān)系,聚合關(guān)系也是通過(guò)實(shí)例變量實(shí)現(xiàn)的。在聚合關(guān)系中,兩個(gè)類是處在不平等層次上的,一個(gè)代表整體,另一個(gè)代表部分,需要的朋友可以參考下

mongoDB聚合操作

mongoDB聚合常用的管道有

  • $match: 過(guò)濾管道過(guò)濾數(shù)據(jù),只輸出符合條件的文檔
  • $group: 將集合中的文檔分組,可用于統(tǒng)計(jì)結(jié)果
  • $project 映射管道,映射輸出
  • $sort: 排序管道,將輸入文檔排序后輸出
  • $limit: 限制管道,限制聚合管道返回的文檔書
  • $skip: 跳過(guò)管道,跳過(guò)指定數(shù)量的文檔,并返回余下的文檔

1.準(zhǔn)備一組數(shù)據(jù)

db.data.insertMany([{name:"Tom", city:"cityA",type:"aaa",num:609,age:18},
{name : "allen", city :"cityC", type: "bbb", num : 549,age:20},
{name :"jerry", city :"cityA", type :"bbb", num : 593,age:22},
{name :"frank", city : "cityB", type:"aaa", num : 657,age:21},
{name :"jack", city : "cityC", type:"aaa", num : 620,age:18},
{name :"alice", city : "cityB", type:"ccc", num : 584,age:20},
{name :"marry", city:"cityA", type:"bbb", num : 599,age:22}
])
db.data.find()

在這里插入圖片描述

2.$group 分組管道

2.1 統(tǒng)計(jì)單組

對(duì)city分組,并求每組num的平均值。

db.data.aggregate({$group:{_id:'$city',avg_num:{$avg:'$num'}}})

在這里插入圖片描述

2.2 統(tǒng)計(jì)多組

db.data.aggregate({$group:{_id:'$city',avg_num:{$avg:'$num'},avg_age:{$avg:'$age'}}})

在這里插入圖片描述

3.$match 過(guò)濾管道

可以將其作用結(jié)果傳給后一個(gè)管道。

對(duì)city不是"cityC"的city分組(過(guò)濾掉“”cityC"),并求每組num的平均值。

db.data.aggregate({$match:{city:{$ne:"cityC"}}},{$group:{_id:'$city',avg_num:{$avg:'$num'}}})

在這里插入圖片描述

對(duì)age≥20的city分組(過(guò)濾掉“”cityC"),并求每組num的平均值。

db.data.aggregate({$match:{age:{$gte:20}}},{$group:{_id:'$city',avg_num:{$avg:'$num'}}})

在這里插入圖片描述

其中,

  • _id是分組的依據(jù)

  • avg_num是新定義的字段名

  • $avg 是求值方法的表達(dá)式,這里是求平均值的表達(dá)式

  • ‘$city’ 指定的分組依據(jù)

  • ‘$num’ 指定的要求值的字段

拓展 統(tǒng)計(jì)數(shù)據(jù)個(gè)數(shù)

如果要統(tǒng)計(jì)每組數(shù)據(jù)的個(gè)數(shù),則可以使用 $sum 實(shí)現(xiàn)。

$sum的功能是求某字段的和,用$sum計(jì)數(shù)時(shí),如統(tǒng)計(jì)每個(gè)city的人數(shù),可以寫成:

db.data.aggregate({$group:{_id:'$city',count:{$sum:1}}})

在這里插入圖片描述

即對(duì)字段,常數(shù)1進(jìn)行計(jì)數(shù)。如果寫為{$sum:2},則計(jì)數(shù)結(jié)果為4,4,6。

4.$project 映射管道

db.data.aggregate({$group:{_id:'$city',avg_num:{$avg:'$num'},avg_age:{$avg:'$age'}}},{$project:{avg_num:1}})

在這里插入圖片描述

如圖,結(jié)果不再顯示avg_age,只顯示了_id和avg_num。

5.$sort $skip $limit

按年齡降序排列,跳過(guò)第一條,取前三條數(shù)據(jù)

db.data.aggregate({$sort:{age:-1}},{$skip:1},{$limit:3})

在這里插入圖片描述

按年齡降序排列,取前三條數(shù)據(jù),跳過(guò)第一條,

db.data.aggregate({$sort:{age:-1}},{$limit:3},{$skip:1})

在這里插入圖片描述

取前三個(gè)數(shù)據(jù),跳過(guò)第一個(gè),再降序排列

db.data.aggregate({$limit:3},{$skip:1},{$sort:{age:-1}})

在這里插入圖片描述

管道的寫法不用考慮優(yōu)先級(jí)的問(wèn)題,從左到右依次執(zhí)行。

6.常用表達(dá)式補(bǔ)充

$sum: 計(jì)算總和, $sum:1 表示以?倍計(jì)數(shù)
$avg: 計(jì)算平均值
$min: 獲取最?值
$max: 獲取最?值
$push: 在結(jié)果?檔中插?值到?個(gè)數(shù)組中
$first: 根據(jù)資源?檔的排序獲取第?個(gè)?檔數(shù)據(jù)
$last: 根據(jù)資源?檔的排序獲取最后?個(gè)?檔數(shù)據(jù)

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

相關(guān)文章

  • 詳解清除MongoDB所占用的多余的磁盤空間的方法

    詳解清除MongoDB所占用的多余的磁盤空間的方法

    MongoDB不會(huì)自動(dòng)進(jìn)行垃圾文件清理,不過(guò)我們可以借助自帶的repairDatabase等功能來(lái)實(shí)現(xiàn),下面我們就來(lái)詳解清除MongoDB所占用的多余的磁盤空間的方法,附帶一個(gè)如何格式化mongo shell的輸出的小技巧:
    2016-06-06
  • MongoDB入門教程之細(xì)說(shuō)MongoDB數(shù)據(jù)庫(kù)的增刪查改操作

    MongoDB入門教程之細(xì)說(shuō)MongoDB數(shù)據(jù)庫(kù)的增刪查改操作

    這篇文章主要介紹了MongoDB入門教程之細(xì)說(shuō)MongoDB數(shù)據(jù)庫(kù)的增刪查改操作,本文環(huán)境是windows,所以以圖片形式講解,需要的朋友可以參考下
    2014-08-08
  • MongoDB釋放空閑空間的幾種常用方法

    MongoDB釋放空閑空間的幾種常用方法

    這篇文章主要給大家介紹了關(guān)于MongoDB釋放空閑空間的幾種常用方法,分別包括compact、db.repairDatabase()、secondary節(jié)點(diǎn)重同步以及db.copyDatabase()這幾種方法,需要的朋友可以參考借鑒,下面來(lái)一起看看吧
    2018-07-07
  • CentOS7.2 安裝 MongoDB 3.4的教程

    CentOS7.2 安裝 MongoDB 3.4的教程

    這篇文章主要介紹了CentOS7.2 安裝 MongoDB 3.4的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Mongodb安裝與配置筆記

    Mongodb安裝與配置筆記

    這篇文章主要介紹了Mongodb安裝與配置筆記,本文環(huán)境為L(zhǎng)inux,講解了Mongodb安裝步驟、配置方法、服務(wù)啟動(dòng)、后臺(tái)運(yùn)行等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • MongoDB使用索引優(yōu)化查詢的方法

    MongoDB使用索引優(yōu)化查詢的方法

    在MongoDB中索引是優(yōu)化查詢性能的關(guān)鍵工具,索引可以顯著減少查詢的掃描范圍,從而提高查詢和排序操作的速度,以下是詳細(xì)的策略和代碼示例,展示如何使用索引優(yōu)化MongoDB的查詢,感興趣的朋友跟隨小編一起看看吧
    2026-03-03
  • 如何使用Docker安裝一個(gè)MongoDB最新版

    如何使用Docker安裝一個(gè)MongoDB最新版

    這篇文章主要介紹了如何使用Docker安裝一個(gè)MongoDB最新版,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • mongodb 添加用戶及權(quán)限設(shè)置詳解

    mongodb 添加用戶及權(quán)限設(shè)置詳解

    我知道的關(guān)系型數(shù)據(jù)庫(kù)都是有權(quán)限控制的,什么用戶能訪問(wèn)什么庫(kù),什么表,什么用戶可以插入,更新,而有的用戶只有讀取權(quán)限。
    2014-07-07
  • mongodb如何對(duì)文檔內(nèi)數(shù)組進(jìn)行過(guò)濾的方法步驟

    mongodb如何對(duì)文檔內(nèi)數(shù)組進(jìn)行過(guò)濾的方法步驟

    這篇文章主要介紹了mongodb如何對(duì)文檔內(nèi)數(shù)組進(jìn)行過(guò)濾的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • MongoDB入門教程之C#驅(qū)動(dòng)操作實(shí)例

    MongoDB入門教程之C#驅(qū)動(dòng)操作實(shí)例

    這篇文章主要介紹了MongoDB入門教程之C#驅(qū)動(dòng)操作實(shí)例,即C#中操作MongoDB數(shù)據(jù)的方法和代碼示例,需要的朋友可以參考下
    2014-08-08

最新評(píng)論

元阳县| 伊宁市| 德兴市| 柳河县| 二连浩特市| 酉阳| 临沭县| 天柱县| 历史| 观塘区| 五台县| 福州市| 山东省| 宝丰县| 新邵县| 新兴县| 桂林市| 菏泽市| 永和县| 垫江县| 洪湖市| 香河县| 台南市| 涪陵区| 宜春市| 乌鲁木齐市| 宁南县| 西丰县| 广东省| 建昌县| 衡东县| 余姚市| 靖远县| 平南县| 庐江县| 巴马| 德安县| 阿勒泰市| 奉新县| 麻城市| 巫溪县|