MongoDB

維基百科,自由的百科全書
跳至導覽 跳至搜尋
MongoDB
File:MongoDB Logo.svg
開發者MongoDB Inc.英語MongoDB Inc.
首次釋出2009年2月11日,​17年前​(2009-02-11[1]
目前版本
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    原始碼庫
    • {{URL|example.com|可选的显示文本}}
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    程式語言C++GoJavaScriptPython
    引擎
      Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
      作業系統Windows 10及以上、LinuxmacOS 10.7及以上、Solaris[2]FreeBSD[3]
      平台x86_64ARM64S390x英語S390x,企業版額外支援PPC64LE[4]
      語言英文
      類型面向文件的資料庫
      授權條款伺服器端公眾授權條款(SSPL)、商業授權條款、語言驅動採用Apache授權條款[5]

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

      部署[編輯]

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

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

      語言支援[編輯]

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

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

      複製[編輯]

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

      主從式[編輯]

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

      例如: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)[44] – 這是一個C++Qt寫成的跨平台桌面程式。
      • Fang of Mongo[45] –這是一個網頁式的介面,由Django和jQuery所構成。
      • Futon4Mongo[46] – 一個以CouchDB Futon Web為介面的MongoDB克隆版本。
      • Mongo3[47] – Ruby寫成的介面。
      • MongoHub[48] –一個OS X應用程式。
      • Opricot[49] – 基於瀏覽器的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[50]CVE-2025-14847),攻擊者可以在無需身分驗證的情況下,從資料庫伺服器中提取未初始化的堆主記憶體(Heap Memory)讀取資訊,影響2017年以來釋出的所有版本[51]。該漏洞在12月24日修復[52]。雖然MongoDB稱沒有證據表明有人利用該漏洞[52],但是12月27日,遊戲《彩虹六號:圍攻》伺服器遭到駭客入侵,被認為是駭客利用了該漏洞[53]

      著名使用者[編輯]

      參見[編輯]

      參考文獻[編輯]

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

      外部連結[編輯]