美光技術詞彙表

MongoDB

MongoDB 是非關聯式資料庫管理系統(不是關聯式資料庫),可儲存各種形式的資料。非關聯式資料庫,以靈活的格式儲存資料,例如索引鍵值組或文件,為處理大量非結構化資料提供更高的可擴充性和效能。

MongoDB 於 2000 年代後期開發,不斷發展並廣受大眾歡迎,使其能應用在各種產業和使用案例。

瞭解什麼是 MongoDB,以及如何使用它。

什麼是 MongoDB?

MongoDB 的定義:MongoDB 是一個非關聯式資料庫,可將資料儲存在類似 JSON 的文件,這是一種用於儲存和傳輸資料的輕量格式。

JSON (JavaScript 物件記號) 是文字型資料格式。其設計易於讀取和寫入,也易於機器剖析和產生。JSON 使用簡單的文字架構,搭配鍵值對和陣列以表示資料。

在 MongoDB 中,資料會以稱為 BSON(二元 JSON)的格式儲存,其將 JSON 延伸以包含更多資料類型。MongoDB 可以有效率地儲存和查詢這些資料,使其成為需要彈性、高效率和可擴充資料儲存的強大應用工具。

MongoDB 的關鍵面向是其為一個 NoSQL 資料庫,這意味著它以非表格格式儲存資料。也就是說,MongoDB 會儲存由欄位(鍵值對)而非列和欄組成的文件,每個欄位都有獨特的物件 ID。此格式提供彈性的資料儲存模式,在資料管理方面具有更大的靈活性和可擴展性。可以將數個資料庫與 MongoDB 進行比較。然而,其以彈性、非關聯性格式儲存資料和文件的能力是獨一無二的。

MongoDB 內儲存的文件集合是基本的資料單位。基於其 BSON 格式,可以儲存各種類型的資料,使 MongoDB 成為以不同格式儲存各種資料的多功能資料庫。

MongoDB 如何運作?

MongoDB 以二元 JSON 格式儲存文件,並針對速度最佳化,支援豐富的資料類型。這些功能使 BSON 成為 MongoDB 的完美格式,因為其可以處理不同資料類型的收集,符合資料庫的靈活性。每份文件都是索引鍵值對的集合,如以下範例所示:

​{

"姓名": "Alice", 

 "年齡":29, 

 "技能":["JavaScript", "Python"], 

 "地址": { "城市": "波士頓","郵編":10001 } 

這些鍵值對,例如欄位名稱Alice 的值,都會在文件中分組。MongoDB 的彈性以未實施固定架構為特色。每個文件都有不同的欄位,可容納更多不同的資料。

MongoDB 的歷史為何?

MongoDB 的歷史相對較短,其起源大約在二十年前。在此期間,MongoDB 的演進充滿突破。

  • 2007 年,基礎:三個人 - Dwight Merriman、Eliot Horowitz 和 Kevin Ryan - 創立了 10Gen,其成立了 MongoDB 的公司。他們也成立了一個名為 DoubleClick 的網際網路廣告服務,現在由 Google 擁有。
  • 2009 年,開源專案之建立:MongoDB 開放原始碼專案於 2009 年在 10Gen 的授權下成立。
  • 2013 年,名稱變更:由於 MongoDB 的成功和普及,10Gen 的重心轉移至其新的名稱 MongoDB, Inc. 以此呈現了重心的轉變。
  • 2019 年,服務變更:經過多年的成功發展,MongoDB, Inc. 與阿里巴巴雲合作,以維持其快速增長。

MongoDB 的關鍵類型是什麼?

MongoDB 有幾種不同的類型,以特定使用案例和用戶需求為目標。

  • MongoDB 社群版(MongoDB Community Edition)是該工具的免費版本,包含多種功能和所有基本功能,例如文件儲存。此版本主要供不需要其他功能的小型開發人員或組織使用。
  • MongoDB 企業版(MongoDB Enterprise Edition)是社群版的升級版,提供進階安全性功能、進一步備份與復原工具,以及進階效能監控。需要增強安全功能和操作工具的組織將從此版本中受益。
  • MongoDB Atlas 版本提供完整管理的雲端版本 MongoDB,並包含完整的重要功能清單。所有部署、擴展、更新和備份都完全自動化,並內建了許多監控和效能最佳化工具。此版本非常適合需要其他內建工具和強大安全性的大型開發人員或組織,以避免基礎架構管理不當。

如何使用 MongoDB?

由於系統的靈活性,MongoDB 可用於各種領域和產業。

行動應用程式可提升開發流程與組織之效率。JSON 文件模型有助於儲存重要的後端資料資訊,這突顯了 MongoDB 的彈性。例如,拍賣公司可以使用 MongoDB 來儲存數十億的產品清單、使用者檔案和交易資料。它能彙整不同環境中的資料,讓開發人員自由且有能力完美地擴充應用程式。

內容管理系統也受益於 MongoDB,其簡化了在使用單一資料庫時,將新功能或屬性新增至網站的過程。這些特性讓實作變得簡單且具有時間意識。

即時分析對於企業擴展營運至關重要。存取大型資料集對於提升工作規模和獲得即時業務見解至關重要。MongoDB 簡化了這個流程,並無縫地將文件轉換成 Java 物件,讓整個流程更有效率。舉例來說,有些線上出版商使用 MongoDB 來深入剖析文章在社群上的分享狀況,並能即時掌握爆紅故事所帶來的商機。 

常見問答

MongoDB 常見問題集

MongoDB 的無架構設計與擴充性,透過共用提供彈性。
 

碎片化是 MongoDB 用來在多台機器間分配資料的方法,可實現水平擴充。這種技術將資料分成更小、可管理的碎片,稱為碎片,儲存在多個伺服器中。
 

MongoDB 的另一個優點是其最佳化效能與 BSON 格式。BSON(二元 JSON)是 JSON 文件的二元編碼序列化,針對速度和支援豐富的資料類型進行了最佳化。此最佳化讓 MongoDB 能夠有效率地處理大量資料,並確保高效能。 
 

其易用性和強大的社區支援使其成為開發人員和組織的熱門選擇。

由於 MongoDB 有效簡化大型資料集,因此對記憶體使用量有很大的影響。它非常依賴 RAM 來有效處理資訊,這意味著它需要大量記憶體來維持高效能,尤其是經常存取的資料。

MongoDB 可以處理多少個集合沒有固定限制,但太多集合可能會影響工具的效能。