MongoDB 數據庫
- MongoDB 是一個文檔數據庫,旨在簡化開發和擴展
- MongoDB 中的記錄是一個文檔 Document,是由字段和值對組成的數據結構
- MongoDB 文檔類似於 JSON 對象,字段的值可能包括其他文檔、數組和文檔數組
使用文檔的優勢
- 文檔(即對象)在許多編程語言里面都是原生的數據類型(即直接支持的數據類型)
- 嵌入式文檔和數組減少了對連接的需求
- 動態模式支持流暢的多態性
集合/視圖/按需物化視圖
MongoDB 將文檔存儲在集合中,集合類似於關系數據庫中的表,除了集合之外,MongoDB還支持:
- 只讀視圖(從MongoDB 3.4開始)
- 按需物化視圖(從mongodb4.2開始)
主要特征
高性能
MongoDB 提供了高性能的數據持久性
- 對嵌入式數據模型的支持減少了數據庫系統上的I/O活動
- 索引支持更快的查詢,並且可以包含來自嵌入文檔和數組的鍵
豐富的查詢語言
MongoDB 支持豐富的查詢語言來支持讀寫操作(CRUD)以及:
- 數據聚合
- 文本搜索和地理空間查詢
高可用性
MongoDB 的復制工具(稱為副本集)提供:
- 自動故障轉移
- 數據冗余
副本集是維護相同數據集的一組 MongoDB 服務器,提供冗余並提高數據可用性
橫向可擴展性
MongoDB 作為其核心功能的一部分提供了水平可擴展性:
- 分片將數據分布在計算機集群中
- 從3.4開始,MongoDB 支持基於 shard 密鑰創建數據區域
- 在平衡集群中,MongoDB 只將區域覆蓋的讀寫操作定向到區域內的碎片
支持多個存儲引擎
MongoDB支持多種存儲引擎:
- WiredTiger 存儲引擎(包括對靜態加密的支持)
- 內存存儲引擎
此外,MongoDB 還提供了可插入的存儲引擎API,允許第三方為 MongoDB 開發存儲引擎