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系列--深入理解MongoDB聚合(Aggregation )MongoDB
- MongoDB 新手入門 - AggregationMongoDB
- Basic Aggregation in MongoDB 2.1 with PythonMongoDBPython
- Mybatis筆記總結MyBatis筆記
- javascript 總結筆記JavaScript筆記
- Latch總結筆記筆記
- ENQUEUE總結筆記ENQ筆記
- kvm筆記總結筆記
- MongoDB筆記MongoDB筆記
- 鎖的總結筆記筆記
- 韓語學習筆記(1-5)溫習總結筆記
- mysql總結筆記 -- 索引篇MySql筆記索引
- Redux 學習總結筆記Redux筆記
- LDAP學習筆記總結LDA筆記
- MongoDB查詢總結MongoDB
- MongoDB基礎總結MongoDB
- MongoDB 學習筆記MongoDB筆記
- MongoDB的聚合筆記MongoDB筆記
- MongoDB學習筆記MongoDB筆記
- MONGODB 讀書筆記MongoDB筆記
- ES 筆記三十九:Pipeline 聚合分析筆記
- Redis知識點筆記總結Redis筆記
- Docker快速入門總結筆記Docker筆記
- 天氣小程式筆記總結筆記
- 學習筆記900天總結筆記
- 機器學習總結 (機器學習實踐筆記)機器學習筆記
- 學習筆記800天總結筆記
- Memcached筆記——(三)Memcached使用總結筆記
- PL/SQL學習筆記-總結SQL筆記
- 【MongoDB學習筆記】MongoDB 快速入門MongoDB筆記
- MongoDB知識點總結MongoDB
- MongoDB的學習總結MongoDB
- MongoDB監控方法總結MongoDB
- mongoDB 小指令碼總結MongoDB指令碼
- MongoDB的學習筆記MongoDB筆記
- mongodb學習筆記一MongoDB筆記
- 【MongoDB學習筆記】MongoDB索引那點事MongoDB筆記索引