聚合 aggregate
- 聚合(aggregate)主要用于計算數據,類似sql中的sum()、avg()
- 語法
db.集合名稱.aggregate([{管道:{表達式}}])
管道
- 管道在Unix和Linux中一般用于將當前命令的輸出結果作為下一個命令的輸入
ps ajx | grep mongo
- 在mongodb中,管道具有同樣的作用, 文檔處理完畢后,通過管道進行下一次處理
- 常用管道
- $group:將集合中的文檔分組,可用于統計結果
- $match:過濾數據,只輸出符合條件的文檔
- $project:修改輸入文檔的結構,如重命名、增加、刪除字段、創建計算結果
- $sort:將輸入文檔排序后輸出
- $limit:限制聚合管道返回的文檔數
- $skip:跳過指定數量的文檔,并返回余下的文檔
- $unwind:將數組類型的字段進行拆分
表達式
- 處理輸入文檔并輸出
- 語法
表達式:'$列名'
- 常用表達式
- $sum:計算總和,$sum:1同count表示計數
- $avg:計算平均值
- $min:獲取最小值
- $max:獲取最大值
- $push:在結果文檔中插入值到一個數組中
- $first:根據資源文檔的排序獲取第一個文檔數據
- $last:根據資源文檔的排序獲取最后一個文檔數據