mongodb 聚合查詢

操做符介紹:sql

$project:包含、排除、重命名和顯示字段mongodb

$match:查詢,須要同find()同樣的參數數組

$limit:限制結果數量sqlserver

$skip:忽略結果的數量spa

$sort:按照給定的字段排序結果server

$group:按照給定表達式組合結果排序

$unwind:分割嵌入數組到本身頂層文件ip

文檔: MongoDB 官方 aggregate 說明 。文檔

相關使用:get

db.collection.aggregate([array]);

array但是是任何一個或多個操做符。

group和match的用法,使用過sqlserver,group的用法很好理解,根據指定列進行分組統計,能夠統計分組的數量,也能統計分組中的和或者平均值等。

group以前的match,是對源數據進行查詢,group以後的match是對group以後的數據進行篩選;


本身的小例子:統計sid是4的按year分組統計數量
db
.wd_paper_ei.aggregate({$match:{"affInfo.affiliationJGList.sid":4}},{$group:{"_id":"$year","number":{$sum:1}}},{$match:{"_id":{$in:["2006","2007","2008","2009","2010","2011","2012","2013","2014","2015","2016","2017"]}}},{$sort:{"_id":1}});