[MongoDB知識體系] 一文全面總結MongoDB知識體系
阿新 • • 發佈:2021-03-11
# ♥MongoDB教程 - Mongo知識體系詳解♥
> 本系列將給大家構建MongoDB全域性知識體系。@pdai
- [♥MongoDB教程 - Mongo知識體系詳解♥](#mongodb教程---mongo知識體系詳解)
- [知識體系](#知識體系)
- [學習要點](#學習要點)
- [學習資料](#學習資料)
- [官網資料](#官網資料)
- [入門系列](#入門系列)
- [其它](#其它)
## 知識體系
MongoDB學習引入
![](https://pdai.tech/_images/db/mongo/mongo-x-basic-0.png)
MongoDB生態
![](https://pdai.tech/_images/db/mongo/mongo-y-echo-11.png)
## 學習要點
> **1. MongoDB引入和生態介紹**: 首先了解NoSQL基本的概念以及MongoDB基礎概念,進而引入MongoDB的生態。
+ [Mongo入門 - MongoDB基礎概念](https://pdai.tech/md/db/nosql-mongo/mongo-x-basic.html)
+ 在學習MongoDB之前先簡單瞭解相關概念。
+ [Mongo入門 - MongoDB整體生態](https://pdai.tech/md/db/nosql-mongo/mongo-x-ecosystem.html)
+ 很多人在學習Mongo時僅僅圍繞著資料庫功能,圍繞著CRUD和聚合操作,但是MongoDB其實已經基本形成了它自身的生態了。我們在學習一項技能時一定要跳出使用的本身,要從高一點的格局上了解整個生態,這樣會對你構築知識體系有很大的幫助。。
> **2. MongoDB入門 - 基本使用**: 開始學習MongoDB安裝,使用等。
+ [Mongo入門 - 基本使用:安裝和CRUD](https://pdai.tech/md/db/nosql-mongo/mongo-x-usage-1.html)
+ 在理解MongoDB基礎概念後,本文將介紹MongoDB的安裝和最基本的CURD操作。
+ [Mongo入門 - 基本使用:索引和聚合](https://pdai.tech/md/db/nosql-mongo/mongo-x-usage-2.html)
+ 在瞭解MongoDB的基本CRUD操作後,常用的其它操作還有對欄位的索引以及對欄位的聚合操作。
+ [Mongo入門 - 基本使用:效率工具](https://pdai.tech/md/db/nosql-mongo/mongo-x-usage-3.html)
+ 本文將主要介紹常用的MongoDB的工具,這些工具可以極大程度的提升你的效率。
+ [Mongo入門 - 基本使用:Java 低階API](https://pdai.tech/md/db/nosql-mongo/mongo-x-usage-4.html)
+ 本文為低優先順序,只是向你介紹下MongoDB提供的原生的JavaAPI;而大多數公司使用Spring框架,會使用Spring Data對MongoDB原生API的封裝,比如JPA,MongoTemplate等。
+ [Mongo入門 - 基本使用:Spring Data + Mongo](https://pdai.tech/md/db/nosql-mongo/mongo-x-usage-5.html)
+ 本文為主要介紹Spring Data對MongoDB原生API的封裝,比如JPA,MongoTemplate等。以及原生API和Spring data系列之間的關係。
![](https://pdai.tech/_images/db/mongo/mongo-x-usage-spring-5.png)
> **3. MongoDB進階 - 原理和WiredTigger儲存引擎**: 在學習完常用的基礎之後,我們再看下MongoDB的原理和WiredTigger儲存引擎。
+ [Mongo進階 - MongoDB體系結構](https://pdai.tech/md/db/nosql-mongo/mongo-y-arch.html)
+ 上面章節已經對MongoDB生態中工具以及使用有了基礎,後續文章我們將開始理解MongoDB是如何支撐這些功能的。我們將從最基本的MongoDB的體系結構開始介紹,主要包括`MongoDB的包結構`,`MongoDB的資料邏輯結構`,`MongoDB的資料檔案結構`。其中圍繞著MongoDB的資料檔案結構,將為我們後續介紹MongoDB的儲存引擎詳解打下基礎。
+ [Mongo進階 - 原理和WiredTiger引擎](https://pdai.tech/md/db/nosql-mongo/mongo-y-introduce.html)
+ 開始初步瞭解MongoDB實現原理和WiredTiger引擎。
+ [Mongo進階 - WT引擎:資料結構](https://pdai.tech/md/db/nosql-mongo/mongo-y-ds.html)
+ MongoDB的WiredTiger儲存引擎背後採用了什麼樣的資料結構呢?本文將從`常見引擎資料結構`,`典型B-Tree資料結構`,`磁碟資料結構`, `記憶體資料結構`, `Page資料結構`等方面詳解介紹。。
+ [Mongo進階 - WT引擎:Page生命週期](https://pdai.tech/md/db/nosql-mongo/mongo-y-page.html)
+ 通過前文我們瞭解到資料以page為單位載入到cache; 有必要系統的分析一頁page的生命週期、狀態以及相關引數的配置,這對後續MongoDB的效能調優和故障問題的定位和解決有幫助。
+ [Mongo進階 - WT引擎:checkpoint原理](https://pdai.tech/md/db/nosql-mongo/mongo-y-checkpoint.html)
+ Checkpoint主要有兩個目的: 一是將記憶體裡面發生修改的資料寫到資料檔案進行持久化儲存,確保資料一致性;二是實現資料庫在某個時刻意外發生故障,再次啟動時,縮短資料庫的恢復時間,WiredTiger儲存引擎中的Checkpoint模組就是來實現這個功能的。
> **4. MongoDB進階 - 資料庫核心知識點**: 再者我們還學要進一步學習MongoDB的核心知識點。
+ [Mongo進階 - DB核心:索引實現](https://pdai.tech/md/db/nosql-mongo/mongo-z-index.html)
+ 資料庫核心知識點之索引
+ [Mongo進階 - DB核心:複製集](https://pdai.tech/md/db/nosql-mongo/mongo-z-rep.html)
+ 資料庫核心知識點之複製集
+ [Mongo進階 - DB核心:分片Sharding](https://pdai.tech/md/db/nosql-mongo/mongo-z-sharding.html)
+ 資料庫核心知識點之復分片Sharding
+ [Mongo進階 - DB核心:備份恢復](https://pdai.tech/md/db/nosql-mongo/mongo-z-backup.html)
+ 資料庫核心知識點之備份恢復
> **5. MongoDB進階 - 資料模型設計**: 在真正使用中,需要知道如何設計資料模型。
+ [Mongo進階 - 系統設計:資料模型](https://pdai.tech/md/db/nosql-mongo/mongo-performance-model.html)
+ MongoDB使用文件資料模型。
+ [Mongo進階 - 系統設計:模式構建](https://pdai.tech/md/db/nosql-mongo/mongo-y-doc.html)
+ MongoDB使用文件資料模型具有內在的靈活性,允許資料模型支援你的應用程式需求, 靈活性也可能導致模式比它們應有樣子的更復雜。這涉及到如何在MongoDB中設計資料庫模式(schema),有一個嚴峻的現實,大多數效能問題都可以追溯到糟糕的模式設計。
> **6. MongoDB進階 - 效能優化**: 最後基於上述知識點,我們再瞭解下常見的效能優化的方式。
+ [Mongo進階 - 效能:查詢聚合優化](https://pdai.tech/md/db/nosql-mongo/mongo-performance-improve.html)
+ 在MongoDB中通過查詢聚合語句分析定位慢查詢/聚合分析
## 學習資料
> 下面是一些學習MongoDB的參考資料。@pdai
### 官網資料
> 最好的資料在官網。
+ [MongoDB官網](https://www.mongodb.com)
+ [MongoDB資料庫文件](https://docs.mongodb.com/manual/)
+ [MongoDB 常用Shell](https://docs.mongodb.com/manual/mongo/)
+ [MongoDB CRUD](https://docs.mongodb.com/manual/crud/)
+ [MongoDB 聚合](https://docs.mongodb.com/manual/aggregation/)
+ [MongoDB 資料模型](https://docs.mongodb.com/manual/core/data-modeling-introduction/)
+ [MongoDB 事務](https://docs.mongodb.com/manual/core/transactions/)
+ [MongoDB 索引](https://docs.mongodb.com/manual/indexes/)
+ [MongoDB 安全](https://docs.mongodb.com/manual/security/)
+ [MongoDB 副本](https://docs.mongodb.com/manual/replication/)
+ [MongoDB 分片](https://docs.mongodb.com/manual/sharding/)
+ [MongoDB 管理](https://docs.mongodb.com/manual/administration/)
+ [MongoDB 儲存](https://docs.mongodb.com/manual/storage/)
### 入門系列
+ [MongoDB菜鳥教程](https://www.runoob.com/mongodb/mongodb-tutorial.html)
+ [MongoDB入門教程](https://www.w3cschool.cn/mongodb/mongodb-1uxs37ih.html)
## 其它
[Mongodb Geo2d索引原理](https://cloud.tencent.com/developer/article/