這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)MongoDB中怎么實(shí)現(xiàn)聚合操作,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),個舊企業(yè)網(wǎng)站建設(shè),個舊品牌網(wǎng)站建設(shè),網(wǎng)站定制,個舊網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,個舊網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
MongoDB, 雖然一直是被稱為NO SQL ,文檔數(shù)據(jù)庫,可最近這兩年MONGODB 沒閑著,MONGODB 作為大數(shù)據(jù)分析的數(shù)據(jù)存儲空間使用的現(xiàn)在大有人在。
聚合作為MONGODB對于傳統(tǒng)數(shù)據(jù)庫 GROUP BY ,甚至窗口函數(shù)的在MONGODB的體現(xiàn),是比較常用的。 數(shù)據(jù)量小的情況下,性能不是問題,而如果數(shù)據(jù)量大的情況下,一般使用MONGODB 的聚合操作是有技巧和注意的。
首先的從聚合的初級原理說起,MONGODB 的聚合是分階段的,大致可以簡單的分離出,數(shù)據(jù)的提取,和數(shù)據(jù)計算。
下面的圖中,就是在聚合操作中可能會遇到的坑,在做一個簡單的聚合中,(數(shù)據(jù)量5000萬,為了浮現(xiàn)問題,所以直接做聚合,而且做得值是隨機(jī)值,所以你懂得) ,在操作中直接報錯,這個報錯信息是由于在操作聚合時,pipleline stage (具體看你的操作,這里是group stage,的使用已經(jīng)超過MONGODB 的限制 100MB) ,所以在數(shù)據(jù)量較大的情況下,并且沒有進(jìn)行數(shù)據(jù)額過濾,或者數(shù)據(jù)過濾(這里叫$match)后,還是數(shù)據(jù)量巨大的情況下,我們應(yīng)該在做聚合的時候,添加一個參數(shù),這個參數(shù)是在 MONGODB 3.4 支持的。
具體語句是
樣的情況下,就可以利用物理磁盤的環(huán)境來突破做聚合的限制。
那一般來說做聚合中需要注意什么總結(jié)有以下幾點(diǎn)(非完整,目前沒有使用到一些操作,這些操作不在總結(jié)范圍內(nèi))
1,不再聚合范圍的數(shù)據(jù)要進(jìn)行$match 提前過濾
2,顯示的字段要進(jìn)行控制,與聚合無關(guān)的字段,應(yīng)該提前$project
3, 如果聚合中包含排序,則排序要在$match之下
4,當(dāng)有多個$match操作時,盡量進(jìn)行合并。
5, 對于 $match操作的 或 $sort 操作,在數(shù)據(jù)量大的情況下應(yīng)該建立索引
6 如果操作中包含$sort $limit的操作,應(yīng)該將$limit 的操作后置
另根據(jù)當(dāng)前的情況,大部分聚合可以優(yōu)化的命令在 MONGODB 3.4 及以上的版本。所以如果大數(shù)據(jù)量做聚合的運(yùn)算,還是升級到 3.4 及以上的版本為好。
上述就是小編為大家分享的MongoDB中怎么實(shí)現(xiàn)聚合操作了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
本文標(biāo)題:MongoDB中怎么實(shí)現(xiàn)聚合操作
分享地址:http://chinadenli.net/article36/jgcspg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、ChatGPT、網(wǎng)站建設(shè)、云服務(wù)器、服務(wù)器托管、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)