1. 程式人生 > >mongdb aggregate聚合操作

mongdb aggregate聚合操作

1、資料準備

檢視前一篇group操作

 

2、aggregate函式引數講解

mysql     mongdb
===================
WHERE --->$match GROUP BY --->$group HAVING --->$match SELECT --->$project ORDER BY --->$sort LIMIT --->$limit SUM() --->$sum COUNT() --->$sum

 

3、操作案例

#查詢每個欄目下的商品數量
db.collection.aggregate();
[
{$group:{_id:
"$cat_id",total:{$sum:1}}} ] #查詢goods下有多少條商品,select count(*) from goods [ {$group:{_id:null,total:{$sum:1}}} ] #查詢每個欄目下 價格大於50元的商品個數 [ {$match:{shop_price:{$gt:50}}}, {$group:{_id:"$cat_id",total:{$sum:1}}} ] #查詢每個欄目下 價格大於50元的商品個數 #並篩選出"滿足條件的商品個數" 大於等於3的欄目 [ {$match:{shop_price:{$gt:50}}}, {$group:{_id:
"$cat_id",total:{$sum:1}}}, {$match:{total:{$gte:3}}} ] #查詢每個欄目下的庫存量 [ {$group:{_id:"$cat_id" , total:{$sum:"$goods_number"}}}, ] #查詢每個欄目下的庫存量,並按庫存量排序 [ {$group:{_id:"$cat_id" , total:{$sum:"$goods_number"}}}, {$sort:{total:1}} ] #查詢每個欄目下的庫存量,並按庫存量排序 [ {$group:{_id:"$cat_id" , total:{$sum:"$goods_number"}}}, {$sort:{total:
1}}, {$limit:3} ] #查詢每個欄目的商品平均價格,並按平均價格由高到低排序 [ {$group:{_id:"$cat_id" , avg:{$avg:"$shop_price"}}}, {$sort:{avg:-1}} ]