該書的使用的MongoDB版本是 4.2.0
1、什么是NoSQL數據庫?NoSQL和RDBMS有什么區別?在那些情況下使用和不使用NoSQL數據庫?
? ? ? ? NoSQL是非關系型數據庫,NoSQL=Not Only SQL 。
? ? ? ? 關系型數據庫采用的是結構化的數據,NoSQL采用的是鍵值對的方式存儲數據。
? ? ? ? 在處理非結構化/半結構化的數據時,在水平方向上進行擴展時,隨時應對動態增加的數據項時可以優先考慮使用NoSQL數據庫。
????????在考慮數據庫的成熟度、支持、分析和商業智能、管理及專業性等問題時,應優先考慮關系型數據庫。
2、MySQL與MongoDB之間最基本的差別是什么?
? ? ? ? MySQL和MongoDB兩者都是免費開源的數據庫。MySQL和MongoDB有許多基本差別包括數據的表示、查詢、關系、事務、schema的設計和定義、標準化、速度和性能。
通過比較MySQL和MongoDB,實際上我們是在比較關系型和非關系型數據庫,即數據存儲結構不同。
3、MongoDB 成為最好NoSQL數據庫的原因是什么?
? ? ? ? 1)面向文檔的
? ? ? ? 2)高性能
? ? ? ? 3)高可用性
? ? ? ? 4)易擴展性
? ? ? ? 5)豐富的查詢語言
4、MongoDB中的命名空間是什么意思?
? ? ? ? MongoDB存儲BSON對象在集合中。數據庫名字和集合名字以句點連接起來叫作命名空間(name space)。
? ? ? ? 一個集合命名空間又有多個數據域,集合命名空間里存儲著集合的元數據,比如集合名稱,集合的第一個數據域和最后一個數據域的位置等。而一個數據域由若干個文檔組成,每個數據域都有一個頭部,記錄著第一個文檔和最后一個文檔的位置,以及該數據域的一些元數據。extent之間、document之間通過雙向鏈表連接。
? ? ? ? 索引的存儲數據結構是B樹,索引命名空間存儲著對B樹的根節點的指針。