概述 MongoDB 是一款跨平臺、面向文檔的資料庫。用它創建的資料庫可以實現高性能、高可用性,並且能夠輕鬆擴展。MongoDB 的運行方式主要基於兩個概念:集合(collection)與文檔(document)。 資料庫 資料庫是集合的實際容器。每一資料庫都在文件系統中有自己的一組文件。一個 Mo ...
概述
MongoDB 是一款跨平臺、面向文檔的資料庫。用它創建的資料庫可以實現高性能、高可用性,並且能夠輕鬆擴展。MongoDB 的運行方式主要基於兩個概念:集合(collection)與文檔(document)。
資料庫
資料庫是集合的實際容器。每一資料庫都在文件系統中有自己的一組文件。一個 MongoDB 伺服器通常有多個資料庫。
集合
集合就是一組 MongoDB 文檔。它相當於關係型資料庫(RDBMS)中的表這種概念。集合位於單獨的一個資料庫中。集合不能執行模式(schema)。一個集合內的多個文檔可以有多個不同的欄位。一般來說,集合中的文檔都有著相同或相關的目的。
文檔
文檔就是一組鍵-值對。文檔有著動態的模式,這意味著同一集合內的文檔不需要具有同樣的欄位或結構。
下表展示了關係型資料庫與 MongoDB 在術語上的對比:
關係型資料庫 | MongoDB |
---|---|
資料庫 | 資料庫 |
表 | 集合 |
行 | 文檔 |
列 | 欄位 |
表 Join | 內嵌文檔 |
主鍵 | 主鍵(由 MongoDB 提供的預設 key_id) |
資料庫伺服器 | 客戶端 |
---|---|
MySQL/Oracle | MongoDB |
mysql/sqlplus | mongo |
優勢
任何關係型資料庫都採用一種典型的設計模式,展示表的數目以及表之間的關係。然而 MongoDB 卻沒有關係這個概念。
MongoDB 相比 RDBMS 的優勢
- 模式較少:MongoDB 是一種文檔資料庫,一個集合可以包含各種不同的文檔。每個文檔的欄位數、內容以及文檔大小都可以各不相同。
- 採用單個對象的模式,清晰簡潔。
- 沒有複雜的連接功能。
- 深度查詢功能。MongoDB 支持對文檔執行動態查詢,使用的是一種不遜色於 SQL 語言的基於文檔的查詢語言。
- 具有調優功能。
- 易於擴展。MongoDB 非常易於擴展。
- 不需要從應用對象到資料庫對象的轉換/映射。
- 使用內部存儲存儲(視窗化)工作集,能夠更快地訪問數據。
為何選擇使用 MongoDB
- 面向文檔的存儲:以 JSON 格式的文檔保存數據。
- 任何屬性都可以建立索引。
- 複製以及高可擴展性。
- 自動分片。
- 豐富的查詢功能。
- 快速的即時更新。
- 來自 MongoDB 的專業支持。
MongoDB 適用的領域
- 大數據
- 內容管理及交付
- 移動及社會化基礎設施
- 用戶數據管理
- 數據中心