MongoDB中的資料具有靈活的模式。文件在同一集合,但它們不需要具有相同的欄位或結構集合,集合文件中的公共欄位可以包含不同型別的資料。
MongoDB中的資料具有靈活的模式。與SQL資料庫不同,SQL資料庫必須在插入資料之前確定和宣告表的模式,MongoDB的集合不會強制執行文件結構。這種靈活性有助於將文件對映到實體或物件。 每個文件可以匹配表示實體的資料欄位,即使資料具有實質性的變化。然而,集合中的文件具有類似的結構。
資料建模中的關鍵挑戰是平衡應用程式的需求,資料庫引擎的效能特徵和資料檢索模式。 在設計資料模型時,請始終考慮資料的應用程式使用情況(即資料的查詢,更新和處理)以及資料本身的固有結構。
在MongoDB中設計架構時有一些考慮:
假設客戶需要他的部落格/網站的資料庫設計,並檢視RDBMS和MongoDB架構設計之間的區別。網站有以下要求。
在RDBMS架構中,上述要求的設計將具有最少的三個表。表與表之間的關係如下 -
而在MongoDB模式中,設計將有一個集合post
,其結構以下 -
{
_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中,資料將僅顯示在一個集合中。