MongoDB University筆記總結-M001_Chapter 5: Indexing and Aggregation Pipeline
Source: MongoDB University https://university.mongodb.com/
Course: M001 MongoDB bascis
【Chapter 5】: Indexing and Aggregation Pipeline
Key points:
1.Aggregation Framework
2.sort() and limit()
3.Introduction to Indexes
4.Introduction to Data Modeling
5.Upinsert -- Update or Insert?
1.Aggregation Framework
aggregate
查詢listingsAndReviews表中,amentities中含有wifi資料,只顯示價格和地址資訊。
db.listingsAndReviews.aggregate([
{ "$match": { "amenities": "Wifi" } },
{ "$project": { "price": 1, "address": 1, "_id": 0 }}]).pretty()
等同於:
db.listingsAndReviews.find({ "amenities": "Wifi" }, { "price": 1, "address": 1, "_id": 0 }).pretty()
$group 分組統計
語法如下:
{$group:{
_id:<expression>,// group by Expression
<field1>:{<accumulator1>:<expression1>},
...}}
例:
按照address中的country統計資料的個數,只顯示address。
db.listingsAndReviews.aggregate([
{ "$project": { "address": 1, "_id": 0 }},
{ "$group": { "_id": "$address.country", "count": { "$sum": 1 } } } ])
2.sort() and limit()
sort()將資料進行排序,
1 是正序A-Z
-1 是逆序 Z-A
limit()用來指定顯示的資料行數,。
limit(1)只顯示一行結果
例:zips表中針對pop列進行倒序排列,並只顯示10行
db.zips.find().sort({ "pop": -1 }).limit(10)
limit().sort()與 sort().limit()結果相同。
3.Introduction to Indexes
用來使查詢更為快速,避免使用sort
例:給trips表中的birth year按照正序新增索引
db.trips.createIndex({"birth year":1})
1 代表正序A-Z
-1 代表逆序Z-A
可以同時新增多個索引。
4.Introduction to Data Modeling
更多資料參考:https://docs.mongodb.com/manual/core/data-modeling-introduction/
5.Upinsert -- Update or Insert?
update:
db.collection.updateOne({<query to locate>},{<update>})
Upinsert is a hybrid of update and inserts,it should only be used when it is needed.
如果upsert為 true,則如果需要更新的資料存在是則更新,若更新的數不存在的時候,插入一條新資料。
db.collection.updateOne({<query>},{<update>},{"upsert":true})
相關文章
- MongoDB University課程M103 Basic Cluster Administration 學習筆記MongoDB筆記
- MongoDB 新手入門 - AggregationMongoDB
- MongoDB系列--深入理解MongoDB聚合(Aggregation )MongoDB
- kvm筆記總結筆記
- Mybatis筆記總結MyBatis筆記
- ES 筆記三十九:Pipeline 聚合分析筆記
- MongoDB基礎總結MongoDB
- MongoDB查詢總結MongoDB
- mysql總結筆記 -- 索引篇MySql筆記索引
- MongoDB學習筆記MongoDB筆記
- MongoDB的聚合筆記MongoDB筆記
- MongoDB 學習筆記MongoDB筆記
- 【MongoDB學習筆記】MongoDB 快速入門MongoDB筆記
- 天氣小程式筆記總結筆記
- Python筆記_1語法總結Python筆記
- Redis知識點筆記總結Redis筆記
- Docker快速入門總結筆記Docker筆記
- MongoDB知識點總結MongoDB
- MongoDB的學習總結MongoDB
- 【MongoDB學習筆記】MongoDB索引那點事MongoDB筆記索引
- MongoDB University 中文字幕視訊上線!MongoDB
- 探索性測試總結筆記筆記
- 階段性總結_學習筆記筆記
- console常用命令總結筆記筆記
- JS常用陣列方法總結筆記JS陣列筆記
- MySQL-覆蓋索引總結筆記MySql索引筆記
- ES 筆記四十五: Ingest Pipeline 與 Painless Script筆記AI
- 如何正確做筆記?符號筆記法、康奈爾筆記法總結!筆記符號
- 《演算法筆記》5. 字首樹、桶排序、排序演算法總結演算法筆記排序
- 《程式碼整潔之道》總結和筆記筆記
- Spring Cloud微服務複習筆記總結SpringCloud微服務筆記
- 終、《圖解HTTP》讀書筆記 - 彙總篇(總結)圖解HTTP筆記
- Jenkins學習筆記第八篇pipeline機制Jenkins筆記
- 【MongoDB學習筆記】-使用 MongoDB 進行 CRUD 操作(下)MongoDB筆記
- 【MongoDB學習筆記】-使用 MongoDB 進行 CRUD 操作(上)MongoDB筆記
- Node學習筆記 Mongodb 和 Mongoose筆記MongoDB
- 【MongoDB學習筆記】手把手教你配置Python操作MongoDBMongoDB筆記Python
- vue+element UI 學習總結筆記(一)VueUI筆記