mongodb 聚合查询
操作符介绍:
$project:包含、排除、重命名和显示字段
$match:查询,需要同find()一样的参数
$limit:限制结果数量
$skip:忽略结果的数量
$sort:按照给定的字段排序结果
$group:按照给定表达式组合结果
$unwind:分割嵌入数组到自己顶层文件
文档: MongoDB 官方 aggregate 说明 。
相关使用:
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}});