mongoDB資料庫之聚合
使用聚合框架可以對集合中的文件進行變換和組合,用多個構件建立一個管道,用於對一連串的文件進行處理!構件包括篩選(filtering
), 投射(projecting),分組(grouping),排序(sorting),限制(limiting)和跳過(skipping)等
使用方法是使用aggregate函式
# 語法:
db.col.aggregate({"$構件": {"欄位名": 1}})
①:"$project"的使用
這個方法是使用類似於查詢中的欄位選擇器 --> db.col.find({"xx":"xxx"}, {"name":1, "age":1, "gender": 0})
例:
②:"$group"的使用
這個方法會按照指定欄位分組,由"_id"指定
例:如果按下面使用方式,加上count的話,表示如果zone對應的名字出現一次,就會對其加1
③:"$sort"的使用
這個方法會根據指定欄位排序(正序1或者倒序-1),和使用sort方法一樣
例:
④:"$limit"的使用
這個方法會指定數量返回,和limit方法一樣
例:
綜合使用上述構件如下:
例:
****************************************************************************************************************************************************************************************************************************************
以上為幾個構件的簡單使用,構件還可以有更加複雜的用法
一:"$project"
(1) 管道表示式
就是上面的使用方式
(2) 數學表示式
操作符:"$add" 接收一個或多個表示式,將這些表示式相加
"$subtract" 接收兩個表示式,用第一個表示式減去第二個表示式作為結果
"$multiply" 接收一個或多個表示式,將其相乘
"$divide" 接收兩個表示式,用第一個除以第二個商作為結果
"$mod" 接收兩個表示式,用第一個除以第二個餘數作為結果
(3)日期表示式
操作符: "$year" 提取年份
"$month" 提取月份
"$week" 提取周
"$dayOfMonth" 提取月中的第幾天
"$dayOfWeek" 提取週中的第幾天
"$dayOfYyear" 提取年中的第幾天
"$hour" 提取小時
"$minute" 提取分鐘
"$second" 提取秒
(4)字串表示式
操作符 :"$substr" 擷取字串
"$concat" 將給定表示式中字串連線在一起
"$toLower" 返回小寫形式
"$toUpper" 返回大寫形式
(5) 邏輯表示式
操作符: "$cmp" 比較兩個值,前者大返回正數,反之,返回負數
"$strcasecmp" 比較兩個字串
"$eq/ne/gt/gte/lt/lte" 比較兩個值,返回大的值
"$and" 如果所有表示式值都是true,則返回true,反之,返回false
"$or" 只要有任意表示式值是true,則返回true
"$not" 對錶達式取反
二:"$group"
(1) 分組操作符,上面所述
(2) 算術操作符:
"$sum" 計算總出現次數
"$avg": 計算平均值
(3) 極值操作符
"$max" 最大值
"$min" 最小值
"$first" 第一個值
"$last" 最後一個值
(4)陣列操作符
"$addToSet" 如果表示式不包含在當前陣列中,則新增
"$push" 不管是是什麼值都新增到陣列中
三,"$unwind" 將陣列中的每一個值拆分為單獨的文件,例如,有一篇擁有多條評論的文章,可以使用其將每條評論拆分為獨立的文件
資料格式:{"_id": xx, "post": "hello", "author": "xx", "comments": [{}, {}, {}]}
#語法:
db.xx.aggregate({"$unwind": "$comments"})
相關文章
- MongoDB學習之聚合操作MongoDB
- MongoDB資料庫MongoDB資料庫
- nodejs之MongoDB 非關係型資料庫NodeJSMongoDB資料庫
- Python全棧MongoDB資料庫(聚合、二進位制、GridFS、pymongo模組)Python全棧MongoDB資料庫
- MongoDB 資料庫操作MongoDB資料庫
- mongodb資料庫操作MongoDB資料庫
- mongodb資料庫中插入資料MongoDB資料庫
- python操作mongodb資料庫PythonMongoDB資料庫
- 資料庫_SQL-MongoDB資料庫SQLMongoDB
- MongoDB資料庫簡介MongoDB資料庫
- MongoDB資料庫入門MongoDB資料庫
- mongodb 如何建立資料庫MongoDB資料庫
- 學習MongoDB資料庫MongoDB資料庫
- MongoDB資料庫備份MongoDB資料庫
- MongoDB資料庫安裝MongoDB資料庫
- 初試MongoDB資料庫MongoDB資料庫
- 快速掌握 MongoDB 資料庫MongoDB資料庫
- Mongodb資料庫連線MongoDB資料庫
- MongoDB 資料庫安全之使用者密碼修改MongoDB資料庫密碼
- 分散式文件儲存資料庫之MongoDB副本集分散式資料庫MongoDB
- 分散式文件儲存資料庫之MongoDB索引管理分散式資料庫MongoDB索引
- mongodb 聚合管道MongoDB
- MongoDB 聚合嵌入的陣列(扁平化資料+管道)MongoDB陣列
- Spring Boot實戰系列(2)資料儲存之NoSQL資料庫MongoDBSpring BootSQL資料庫MongoDB
- SpringBoot整合Mongodb文件資料庫Spring BootMongoDB資料庫
- mongodb資料庫如何建立索引?MongoDB資料庫索引
- Python操作MongoDB文件資料庫PythonMongoDB資料庫
- Python 資料庫騷操作 -- MongoDBPython資料庫MongoDB
- Python資料庫MongoDB騷操作Python資料庫MongoDB
- 分散式文件儲存資料庫之MongoDB訪問控制分散式資料庫MongoDB
- 分散式文件儲存資料庫之MongoDB分片叢集分散式資料庫MongoDB
- MongoDB資料庫中查詢資料(下)MongoDB資料庫
- MongoDB 資料庫管理和開發:Navicat for MongoDB macMongoDB資料庫Mac
- MongoDB - 聚合查詢MongoDB
- mongodb資料庫備份與恢復(資料庫資料遷移)MongoDB資料庫
- 在MongoDB資料庫中查詢資料(上)MongoDB資料庫
- MongoDB資料庫中更新與刪除資料MongoDB資料庫
- 分散式文件儲存資料庫之MongoDB基礎入門分散式資料庫MongoDB