MongoDB 是一種流行的開源 NoSQL 資料庫,於 2009 年首次發布。與傳統的關係型資料庫系統不同,它不依賴於表格和固定的資料庫結構,而是採用一種基於文件的架構,其中每條記錄都是一個稱為 「文件」 的 JSON 樣式結構。此靈活的結構使 MongoDB 成為許多動態應用程式和大數據解決方案的首選。
Document Based
相對於傳統的關係型資料庫,它依靠表格中的列/行來儲存資料,並且通常需要在多個表中透過 JOIN 操作來聚集不同類型的資料。在這樣的系統中,資料表間的關係可能非常多元和繁瑣。而在開始使用之前,必須先建立一個完整的 schema,並根據特定應用的需求來設計 ER 模型,才能被應用程式使用。
另一方面,MongoDB 採用基於文件的方法,其中資料是以 BSON 格式存儲在文件中,每個文件由多個欄位和值對組成。這種方式支援多種資料結構,包括基本的整數、字串和陣列,以及嵌入式文件。這種嵌入式文件的結構有一個明顯的優點,即可以通過單一查詢就獲得所需的所有資料,避免了需要在多個表之間進行 JOIN 操作的需求。
文件被儲存於集合中,每一個文件可以具有與集合中其他文件不同的結構或模式,從而為使用者提供更高的靈活性。使用者可以根據查詢的種類和資料特性,對文件中的欄位設置索引。同時,如果希望所有文件遵循特定的資料結構,也可以利用模式驗證來確保資料的一致性。
以文件為基礎的設計傾向於去規格化,這使得開發過程更直觀和靈活。然而,這並不意味著去規格化固然優於規格化的設計;這仍然依賴於業務需求來決定最佳方案。去規格化不僅具有上述優點,還可以減少大量資料連接操作的時間,從而提高資料讀取的效率。然而,它在資料冗餘或一致性的維護上可能不是那麼有利。因此,最終的設計方向需要根據實際的應用情境來定。
總結使用文件儲存資料的一些明顯優點如下: