聚合( Aggregation )為集合文檔數(shù)據(jù)提供各種處理數(shù)據(jù)方法,并返回計算結(jié)果。MongoDB 提供了3 種方式來執(zhí)行聚合命令:聚合管道方法、map-reduce 方法和單一目標聚合方法。
1.聚合管道方法
聚合管道方法又可以直接理解為合計流水線法,就是把集合里若干含數(shù)值型的文檔記錄,其鍵對應的值進行各種分類統(tǒng)計。該方法支持分片集合操作。
語法: db.collection_name.aggregate(
[{$match: {<field>}},//統(tǒng)計查找條件
{$group:{<fieldl >,< field2 >}}
//fieldl 為分類字段; field2 為含各種統(tǒng)計操作符的數(shù)值型字段,如$sum、$avg、$min、$max、$push、$addToSet、$first、$last操作符
db.Sale_detail.aggregate( [ { $match: {ok : false} //查找條件,與find()的查找條件使用方法一樣 }, { $group: { _id: "$goodsid", total: {$sum: "$amount"} //按goodsid分類統(tǒng)計amount字段的總數(shù)量 } } ] )
_id :"$goodsid" ,goodsid為分類字段名,_id為必須指定唯一性字段,不能改為其他名稱的字段;total為統(tǒng)計結(jié)果字段名,可以是任意的符合起名規(guī)則的新名稱。$sum為求和操作符號, $amount為求和字段,必須加上雙引號。
2. map-reduce方法
語法: db.collection_name. mapreduce(
function() {emit( <this.field1>,<this.field2>)},
function(key, value){return array.sum(values)},
{query: {<field>} ,out:<"resultname">}
命令說明:
function(){emit(<this.field1>, <this.field2>)},把集合對應的字段<field1><field2>進行map(影射)操作。
把自field1值和求得值連同out:<"resultname">一起返回。
query:{<field>}在集合里查詢符合<field>條件的文檔。
該方式進行聚合運算,效率較聚合管道方式要低,而且使用更復雜。
3. 單一目標聚合方法
該方法下,目前有兩種聚合操作功能:db.collection_name.count()和db.collection_name.distinct()。
(1)語法:db.collection_name.count(query, options)
命令說明:統(tǒng)計集合里符合查詢條件的文檔數(shù)量, query 為查詢條件, option 參數(shù)詳細說明如表
統(tǒng)計符合條件的記錄數(shù)
db.Sale_detail.count({ok: false})
從第二條開始統(tǒng)計符合條件的記錄數(shù)
db.Sale_detail.count({ok: false}, {skip: 1})
統(tǒng)計指定鍵的不同值并返回不同值
db.Sale_detail.distinct("goodsid")
單一目標聚合方法,可以直接在find()后加點使用。
如goodsdb.Sale_detail.find({ok:false}).count()
goodsdb.Sale_detail.find({ok:false}).count().skip(1)
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
新聞名稱:聚合的方法介紹-創(chuàng)新互聯(lián)
當前URL:http://aaarwkj.com/article38/iphsp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、定制網(wǎng)站、靜態(tài)網(wǎng)站、網(wǎng)站策劃、Google、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)