跳至內容

MongoDB

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
MongoDB
開發者MongoDB Inc.英語MongoDB Inc.
首次釋出2009年2月11日,​17年前​(2009-02-11[1]
目前版本
  • 8.2.3(2025年12月22日;穩定版本)[2]
編輯維基數據連結
原始碼庫 編輯維基數據連結
程式語言C++GoJavaScriptPython
作業系統Windows 10及以上、LinuxmacOS 10.7及以上、Solaris[3]FreeBSD[4]
平台x86_64ARM64S390x英語S390x,企業版額外支援PPC64LE[5]
語言英文
類型面向文件的數據庫
特許條款伺服器端公眾特許條款(SSPL)、商業特許條款、語言驅動採用Apache特許條款[6]
網站www.mongodb.com/products/platform 編輯維基數據

MongoDB是一種文件導向資料庫管理系統,用C++等語言撰寫而成,分類介於關係型資料庫和非關係型資料庫之間的NoSQL。MongoDB由MongoDB Inc.英語MongoDB Inc.(當時是10gen團隊)於2007年10月開發,2009年2月首度推出。2018年,MongoDB改成以伺服器端公眾特許條款英語Server Side Public License分發,不再屬於開源軟件

部署

[編輯]

MongoDB社群版是免費的,支援WindowsLinuxmacOS三種作業系統[7]。許多Linux套件管理系統曾經包含MongoDB的套件。2018年因特許條款變更,MongoDB不再屬於開源軟件,DebianFedoraRed Hat Enterprise LinuxLinux發行版已從軟件儲存庫中移除了MongoDB。[8][9]

MongoDB使用主記憶體對映檔案,32位元系統上限制大小為2GB的資料,64位元支援更大的資料。[10] MongoDB的核心構件只能在小端序系統上執行,客戶端庫可以在小端序和大端序的系統上執行[11]

語言支援

[編輯]

MongoDB有官方的驅動如下:C[12]、C++[13]、C#[14]、Erlang[15]、Haskell[16]、Java[17]、JavaScript[18]、Lisp[19]、fibjs[20]、node.JS[21]、Perl[22]、PHP[23]、Python[24]、Ruby[25]、Scala[26]、Go[27]和Rust[28]

目前還有許多非官方的驅動,ColdFusion、[29] Delphi、[30] Erlang、[31][32] Factor、[33] Fantom、[34] Go、[35] JVM languages(Clojure、Groovy [36]、Scala等)、[37] Lua、[38] HTTP REST、[39] Racket[40]和Smalltalk[41]

複製

[編輯]

MongoDB的開發人員可以保證一個操作已被複製到至少個伺服器上每個運行的基礎。

主從式

[編輯]

由於操作都是在主機,從機將複製任何更改的數據。

例如:starting a master/slave pair locally:

$ mkdir -p ~/dbs/master ~/dbs/slave
$ ./mongod --master --port 10000 --dbpath ~/dbs/master
$ ./mongod --slave --port 10001 --dbpath ~/dbs/slave --source localhost:10000

副本集

[編輯]

副本集類似於主從式架構,但他們結合的能力為副機,如果當前一直遲緩時,選出新的主機。

管理與圖形化介面

[編輯]

監視

[編輯]

支援MongoDB的監視外掛程式:

GUIs

[編輯]

目前較受歡迎的UI有:

  • Robo 3T(原Robomongo)[45] – 這是一個C++Qt寫成的跨平台桌面程式。
  • Fang of Mongo[46] –這是一個網頁式的介面,由Django和jQuery所構成。
  • Futon4Mongo[47] – 一個以CouchDB Futon Web為介面的MongoDB克隆版本。
  • Mongo3[48] – Ruby寫成的介面。
  • MongoHub[49] –一個OS X應用程式。
  • Opricot[50] – 基於瀏覽器的MongoDB shell,由PHP撰寫而成。
  • Database Master MongoDB Tool for Windows
  • RockMongo Best PHP MongoDB Administrator輕量級,支援多國語言。
  • MongoVUE Download CS,圖形介面,封裝較好。
  • MongoDB Compass,MongoDB官方的跨平台GUI。

安全漏洞

[編輯]

2025年12月曝出MongoDB Zlib壓縮協定堆主記憶體資訊泄露漏洞(稱為MongoBleed[51]CVE-2025-14847),攻擊者可以在無需身份驗證的情況下,從資料庫伺服器中提取未初始化的堆主記憶體(Heap Memory)讀取資訊,影響2017年以來釋出的所有版本[52]。該漏洞在12月24日修復[53]。雖然MongoDB稱沒有證據表明有人利用該漏洞[53],但是12月27日,遊戲《彩虹六號:圍攻》伺服器遭到黑客入侵,被認為是黑客利用了該漏洞[54]

著名用戶

[編輯]

參見

[編輯]

參考文獻

[編輯]
  1. ^ State of MongoDB March, 2010. DB-Engines英語DB-Engines ranking. [2018-05-04]. (原始內容存檔於2017-09-18) (美國英語). 
  2. ^ Release 8.2.3. 2025年12月22日 [2025年12月26日]. 
  3. ^ Install MongoDB. MongoDB Manual. [2018-09-19]. (原始內容存檔於2020-12-02). 
  4. ^ How-To: MongoDB on FreeBSD 10.x. FreeBSD News. [2018-05-04]. (原始內容存檔於2017-12-28). 
  5. ^ Production Notes - Supported Platforms. MongoDB Manual. [2018-09-19]. (原始內容存檔於2020-12-03). 
  6. ^ MongoDB Licensing. mongodb.com. [2018-09-19]. (原始內容存檔於2020-11-14). 
  7. ^ MongoDB Download Center. MongoDB. [August 14, 2018]. (原始內容存檔於2018-08-14) (美國英語). 
  8. ^ Vaughan-Nichols, Steven J. MongoDB "open-source" Server Side Public License rejected. ZDNet. [January 17, 2019]. (原始內容存檔於2019-01-16) (英語). 
  9. ^ MongoDB’s licensing changes led Red Hat to drop the database from the latest version of its server OS. GeekWire. January 16, 2019 [January 17, 2019]. (原始內容存檔於2019-01-17) (美國英語). 
  10. ^ 存档副本. [2011-06-23]. (原始內容存檔於2009-09-12). 
  11. ^ Hardware Considerations. [2018-09-19]. (原始內容存檔於2020-12-03). 
  12. ^ C頁面存檔備份,存於互聯網檔案館
  13. ^ C++頁面存檔備份,存於互聯網檔案館
  14. ^ C# / .NET頁面存檔備份,存於互聯網檔案館
  15. ^ Erlang頁面存檔備份,存於互聯網檔案館
  16. ^ Haskell頁面存檔備份,存於互聯網檔案館
  17. ^ Java頁面存檔備份,存於互聯網檔案館
  18. ^ JavaScript
  19. ^ Lisp頁面存檔備份,存於互聯網檔案館
  20. ^ fibjs頁面存檔備份,存於互聯網檔案館
  21. ^ node.JS頁面存檔備份,存於互聯網檔案館
  22. ^ Perl頁面存檔備份,存於互聯網檔案館
  23. ^ PHP頁面存檔備份,存於互聯網檔案館
  24. ^ Python頁面存檔備份,存於互聯網檔案館
  25. ^ Ruby頁面存檔備份,存於互聯網檔案館
  26. ^ Scala頁面存檔備份,存於互聯網檔案館
  27. ^ Go頁面存檔備份,存於互聯網檔案館
  28. ^ MongoDB Rust Driver, mongodb, 2022-08-05 [2022-08-08], (原始內容存檔於2022-08-08) 
  29. ^ ColdFusion driver. [2011-06-23]. (原始內容存檔於2020-10-01). 
  30. ^ Delphi. [2011-06-23]. (原始內容存檔於2016-08-14). 
  31. ^ Emongo Erlang driver. [2011-06-23]. (原始內容存檔於2020-06-22). 
  32. ^ Erlmongo Erlang driver. [2011-06-23]. (原始內容存檔於2010-04-22). 
  33. ^ Factor driver. [2011-06-23]. (原始內容存檔於2016-04-19). 
  34. ^ Fantom driver. [2011-06-23]. (原始內容存檔於2020-08-03). 
  35. ^ gomongo Go driver. [2011-06-23]. (原始內容存檔於2020-11-09). 
  36. ^ GMongo. [2011-06-23]. (原始內容存檔於2017-09-09). 
  37. ^ JVM language center. [2011-06-23]. (原始內容存檔於2013-01-29). 
  38. ^ LuaMongo. [2011-06-23]. (原始內容存檔於2016-01-18). 
  39. ^ REST interface. [2011-06-23]. (原始內容存檔於2019-11-18). 
  40. ^ 存档副本. [2011-06-23]. (原始內容存檔於2018-07-20). 
  41. ^ Smalltalk driver. [2011-06-23]. (原始內容存檔於2019-10-18). 
  42. ^ Munin plugin. [2011-06-23]. (原始內容存檔於2020-10-24). 
  43. ^ Ganglia plugin. [2011-06-23]. (原始內容存檔於2020-09-16). 
  44. ^ Cacti plugin. [2011-06-23]. (原始內容存檔於2016-06-08). 
  45. ^ Robo 3T - formerly Robomongo — native MongoDB management tool (Admin UI). [2018-09-19]. (原始內容存檔於2020-12-05). 
  46. ^ Fang of Mongo. [2011-06-23]. (原始內容存檔於2020-09-12). 
  47. ^ Futon4Mongo. [2011-06-23]. (原始內容存檔於2016-12-25). 
  48. ^ Mongo3. [2011-06-23]. (原始內容存檔於2016-03-05). 
  49. ^ MongoHub. [2011-06-23]. (原始內容存檔於2011-06-13). 
  50. ^ Opricot. [2011-06-23]. (原始內容存檔於2011-06-18). 
  51. ^ Desimone, Joe. mongobleed. Github. 2025-12-31 [2025-12-31]. 
  52. ^ Kozlovski, Stanislav. MongoBleed explained simply. bigdata.2minutestreaming.com. [2025-12-31] (英語). 
  53. ^ 53.0 53.1 Important MongoDB patch available. MongoDB Community Hub. 2025-12-24 [2025-12-31] (英語). 
  54. ^ R6 Siege Breached: Infinite Credits, Bans & Do Not Login Warning. The CyberSec Guru. 2025-12-27 [2025-12-31]. 
  55. ^ 12 Months with MongoDB. 2010-10-25 [2011-05-24]. (原始內容存檔於2020-11-09). 
  56. ^ MongoDB - diasporatest.com. 2010-12-23 [2010-12-23]. (原始內容存檔於2010-11-24). 
  57. ^ Implementing MongoDB at Shutterfly - Presentation at MongoSF. 2010-04-30 [2010-06-28]. (原始內容存檔於2011-05-18). 
  58. ^ MongoDB at foursquare - Presentation at MongoNYC. 2010-05-21 [2010-06-28]. (原始內容存檔於2010-06-12). 
  59. ^ bit.ly user history, auto-sharded - Presentation at MongoNYC. 2010-05-21 [2010-06-28]. (原始內容存檔於2010-06-11). 
  60. ^ Maher, Jacqueline. Building a Better Submission Form. NYTimes Open Blog. 2010-05-25 [2010-06-28]. (原始內容存檔於2020-11-09). 
  61. ^ How Python, TurboGears, and MongoDB are Transforming SourceForge.net. PyCon 2010. 2010-02-20 [2010-06-28]. (原始內容存檔於2011-02-11). 
  62. ^ How This Web Site Uses MongoDB. Business Insider. 2010-11-06 [2010-06-28]. (原始內容存檔於2020-09-10). 
  63. ^ MongoDB at Etsy. Code as Craft: Etsy Developer Blog. 2010-05-19 [2010-06-28]. (原始內容存檔於2011-06-14). 
  64. ^ Holy Large Hadron Collider, Batman!. The MongoDB NoSQL Database Blog. 2010-06-03 [2010-08-03]. (原始內容存檔於2016-09-08). 
  65. ^ Building Our Own Tracking Engine With MongoDB. Thumbtack Blog. 2011-05-03 [2011-05-15]. (原始內容存檔於2011-05-09). 
  66. ^ 楊惠芬. 趨勢科技導入MongoDB-追蹤管理全球10萬個行動裝置,上萬筆資料同時寫入. ithome. 2013-01-17 [2013-01-21]. (原始內容存檔於2013-01-28). 

外部連結

[編輯]