MongoDB 數據模型
在 MongoDB 中的數據有靈活的模式。在相同集合中文檔並不需要有相同的一組字段或結構的公共字段的集合,文檔可容納不同類型的數據。
MongoDB設計模式的一些考慮
-
可根據用戶要求設計架構。
-
合並對象為一個文件,如果要將它們放在一起。否則分開它們(但確保不需要連接)。
-
重複數據(有限),因為磁盤空間便宜(相比計算時間)。
-
不需要連接寫入,而是讀。
-
優化架構是最常見的用例。
-
在模式上做複雜的聚集。
例子
假設一個客戶端需要一個數據庫設計,設計一個博客網站,來看看 RDBMS 和 MongoDB 架構設計之間的差異。網站有以下要求。
-
每一個文章內容都有獨特的標題,描述和網址。
-
每一個文章內容可以有一個或多個標簽。
-
每一個文章內容都有其出版商總數喜歡的名稱。
-
每一個文章內容有評論以及名字,消息,時間和喜歡的用戶。
-
對於每個文章,可以是零個或多個評論。
上述要求在RDBMS模式設計,將有至少三個表。
在MongoDB 模式設計就文章一個集合,並具有以下結構:
{ _id: POST_ID title: TITLE_OF_POST, description: POST_DESCRIPTION, by: POST_BY, url: URL_OF_POST, tags: [TAG1, TAG2, TAG3], likes: TOTAL_LIKES, comments: [ { user:'COMMENT_BY', message: TEXT, dateCreated: DATE_TIME, like: LIKES }, { user:'COMMENT_BY', message: TEXT, dateCreated: DATE_TIME, like: LIKES } ] }
因此,儘管RDBMS要顯示數據,需要加入三個表,而在MongoDB數據隻是從一個集合。