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

MongoDB中aggregate()方法實例詳解

 更新時間:2023年01月03日 12:41:32   作者:白菜4220  
MongoDB中聚合(aggregate)主要用于處理數(shù)據(jù)(諸如統(tǒng)計平均值,求和等),并返回計算后的數(shù)據(jù)結(jié)果,下面這篇文章主要給大家介紹了關于MongoDB中aggregate()方法的相關資料,需要的朋友可以參考下

前言

MongoDB的一個很大的好處是能夠使用MapReduce來吧數(shù)據(jù)庫查詢的結(jié)果簡化成一個與原來的集合完全不同的結(jié)構(gòu)。MapReduce把一個數(shù)據(jù)庫查詢的值映射為一個完全不同的形式,然后簡化結(jié)果,使它們的可用性更好。

MongoDB有一個MapReduce框架,它也允許你使用聚合來簡化吧一個MapReduce操作傳輸?shù)搅硪粋€MapReduce操作的一系列過程。有了MapReduce和聚合,可以用數(shù)據(jù)生成一些不平凡的業(yè)績。聚合的概念是指,在把MongoDB服務器上的文檔匯編為一個結(jié)果集時,對它們執(zhí)行一些列的操作。這比在Node.js應用程序中檢索它們和處理它們更高效,因為MongoDB的服務器可以在本地操作數(shù)據(jù)塊。

1,了解aggergate()方法

Collection對象提供了aggregate()方法來對數(shù)據(jù)進行聚合操作。aggregate()方法的語法如下

aggregate(operators,[options],callback)

operators參數(shù)是如表1所示的聚合運算符的數(shù)組,它允許你定義對數(shù)據(jù)執(zhí)行什么匯總操作。options參數(shù)允許你設置readPreference屬性,它定義了從哪里讀取數(shù)據(jù)。callback參數(shù)是接受err和res

可以在aggregate()方法上使用的聚合運算符
運算符說明
$project

通過重命名,添加或刪除字段重塑文檔。你也可以重新計算值,并添加子文檔。例如,下面的例子包括title并排除name:

{$project:{title:1,name:0}}

以下是把name重命名為title的例子:

{$project{title:"$name"}}

下面是添加一個新的total字段,并用price和tax字段計算它的值的例子:

{$project{total:{$add:["$price","$tax"]}}}

$match通過使用query對象運算符來過濾文檔集。
$limit限定可以傳遞到聚合操作的下一個管道中的文檔數(shù)量。例如{$limit:5}
$skip指定處理聚合操作的下一個管道前跳過的一些文檔
$unwind指定一個數(shù)組字段用于分割,對每個值創(chuàng)建一個單獨的文檔。例如{$unwind:"$myArr"}
$group

把文檔分成一組新的文檔用于在管道中的下一級。新對象的字段必須在$group對象中定義。你還可以把表2中列出的分組表

達式運算符應用到該組的多個文檔中。例如,使用下面的語句匯總value字段:{$group:{set_id:"$0_id",total:{$sum:"$value"}}}

$sort

在把文檔傳遞給處理聚合操作的下一個管道前對它們排序。排序指定一個帶有field:<sort_order>屬性的對象,其中<sort_order>

為1表示升序,而-1表示降序

2,實現(xiàn)聚合表達式運算符

當你實現(xiàn)聚合運算符時,你建立將傳遞到聚合操作流水線的下一級的新文檔。MongoDB的聚合框架提供了許多表達式運算符,它們有助于對新字段計算值或?qū)ξ臋n中的現(xiàn)有字段進行比較。

當在$group聚合管道上操作時,多個文檔與創(chuàng)建的新文檔中定義的字段匹配。MongoDB提供了一組你可以應用到這些文檔的運算符,并用它在原來文檔集的字段值的基礎上計算新組文檔中的字段值。下表列出了$group表達式運算符。

聚合$group表達式運算符
運算符說明
$addToSet返回一組文檔中所有文檔所選字段的全部唯一值的數(shù)組。例如:colors:{$addToSet:"color"}
$first返回一組文檔中一個字段的第一個值。例如:firstValue:{$first:"$value"}
$last返回一組文檔中一個字段的最后一個值。例如:lastValue:{$last:"$value"}
$max返回一組文檔中一個字段的最大值。例如:maxValue:{$max:"$value"}
$min返回一組文檔中一個字段的最小值。例如:minValue:{$min:"$value"}
$avg返回一組文檔中以個字段的平均值。例如:avgValue:{$avg:"$value"}
$push返回一組文檔中所有文檔所選字段的全部值的數(shù)組。例如:username:{$push:"$username"}
$sum返回一組文檔中以個字段的全部值的總和。例如:total:{$sum:"$value"}

此外,計算新的字段值時,可以應用一些字符串和算術(shù)運算符。下表列出了在聚合運算符中計算新字段值可以應用的最常用的一些運算符。

可用在聚合表達式的字符串和算術(shù)運算符
運算符說明
$add計算數(shù)值的總和。例如:valuePlus5:{$add:["$value",5]}
$divide給定兩個數(shù)值,用第一個數(shù)除以第二個數(shù)。例如:valueDividedBy5:{$divide:["$value",5]}
$mod取模。例如:{$mod:["$value",5]}
$multiply計算數(shù)值數(shù)組的乘積。例如:{$multiply:["$value",5]}
$subtract給定兩個數(shù)值,用第一個數(shù)減去第二個數(shù)。例如:{$subtract:["$value",5]}
$concat

連接兩個字符串 例如:{$concat:["str1","str2"]}

$strcasecmp比較兩個字符串并返回一個整數(shù)來反應比較結(jié)果。例如 {$strcasecmp:["$value","$value"]}
$substr返回字符串的一部分。例如:hasTest:{$substr:["$value","test"]}
$toLower將字符串轉(zhuǎn)化為小寫。
$toUpper將字符串轉(zhuǎn)化為大寫

總結(jié)

到此這篇關于MongoDB中aggregate()方法實例詳解的文章就介紹到這了,更多相關MongoDB aggregate()方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MongoDB基礎之查詢文檔

    MongoDB基礎之查詢文檔

    這篇文章介紹了MongoDB基礎之查詢文檔,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • Windows系統(tǒng)啟動MongoDB報錯無法連接服務器的問題及解決方案

    Windows系統(tǒng)啟動MongoDB報錯無法連接服務器的問題及解決方案

    在Windows系統(tǒng)中啟動MongoDB時遇到連接拒絕的錯誤,通常是因為服務未運行或配置問題,本文給大家分享Windows系統(tǒng)啟動MongoDB報錯無法連接服務器的問題及解決方案,一起看看吧
    2024-10-10
  • PHP中的mongodb group操作實例

    PHP中的mongodb group操作實例

    這篇文章主要介紹了PHP中的mongodb group操作實例,本文給出了3個group命令的用法,需要的朋友可以參考下
    2014-09-09
  • 解決mongo的tickets被耗盡導致卡頓問題

    解決mongo的tickets被耗盡導致卡頓問題

    這篇文章主要介紹了解決mongo的tickets被耗盡導致卡頓問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • ubuntu mongodb安裝在哪個文件夾路徑詳解

    ubuntu mongodb安裝在哪個文件夾路徑詳解

    這篇文章主要為大家介紹了ubuntu mongodb安裝在哪個文件夾的安裝路徑詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • springboot整合mongodb

    springboot整合mongodb

    這篇文章主要介紹了springboot如何整合mongodb,mongodb的安裝和使用,感興趣的同學可以參考閱讀本文
    2023-03-03
  • 解決MongoDB 排序超過內(nèi)存限制的問題

    解決MongoDB 排序超過內(nèi)存限制的問題

    最近小編遇到這樣的問題:對集合執(zhí)行一個大排序操作(如聚合),出現(xiàn)以下錯誤:(測試版本:MongoDB 3.0.6),怎么快速解決此問題呢?下面小編給大家分享MongoDB 排序超過內(nèi)存限制的解決方法,一起看看吧
    2017-07-07
  • MongoDB通過查詢與游標徹底玩轉(zhuǎn)分布式文件存儲

    MongoDB通過查詢與游標徹底玩轉(zhuǎn)分布式文件存儲

    MongoDB最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引,這篇文章主要介紹了MongoDB查詢與游標,徹底玩轉(zhuǎn)分布式文件存儲,需要的朋友可以參考下
    2023-01-01
  • MongoDB在不同主機間復制數(shù)據(jù)庫和集合的教程

    MongoDB在不同主機間復制數(shù)據(jù)庫和集合的教程

    MongoDB自帶了clone一族JavaScript函數(shù)來進行數(shù)據(jù)的復制,這里我們總結(jié)了MongoDB在不同主機間復制數(shù)據(jù)庫和集合的教程,列舉出了一些主從復制操作中常用的重要函數(shù):
    2016-07-07
  • Vercel+MongoDB Atlas部署詳細指南

    Vercel+MongoDB Atlas部署詳細指南

    這篇文章主要為大家介紹了Vercel+MongoDB Atlas部署的詳細指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08

最新評論

马关县| 甘南县| 新疆| 阿拉尔市| 洛宁县| 云林县| 广东省| 泗水县| 耿马| 安达市| 新龙县| 兴城市| 九龙城区| 和政县| 鄯善县| 长阳| 平南县| 美姑县| 光泽县| 祁门县| 军事| 八宿县| 左云县| 辽宁省| 莆田市| 延长县| 宜春市| 图片| 特克斯县| 凤台县| 苍山县| 桂林市| 佛教| 库尔勒市| 明溪县| 固安县| 奉贤区| 韶山市| 土默特右旗| 确山县| 和平区|