MongoDB是一種面向文档的数据库管理系统,用C++等语言撰寫而成,分類介于关系型数据库和非关系型数据库之间的NoSQL。MongoDB由(当时是10gen團隊)于2007年10月开发,2009年2月首度推出。2018年,MongoDB改成以分发,不再属于开源软件。
部署
MongoDB社区版是免费的,支援Windows、Linux和macOS三種作業系統。許多Linux套件管理系統曾经包含MongoDB的套件。2018年因许可证变更,MongoDB不再属于开源软件,Debian、Fedora和Red Hat Enterprise Linux等Linux发行版已從软件存储库中移除了MongoDB。
MongoDB使用内存映射文件,32位元系統上限制大小為2GB的資料,64位元支持更大的資料。 MongoDB的核心构件只能在小端序系統上运行,客户端库可以在小端序和大端序的系統上运行。
語言支援
MongoDB有官方的驅動如下:C、C++、C#、Erlang、Haskell、Java、JavaScript、Lisp、fibjs、node.JS、Perl、PHP、Python、Ruby、Scala、Go和Rust。
目前還有許多非官方的驅動,ColdFusion、 Delphi、 Erlang、 Factor、 Fantom、 Go、 JVM languages(Clojure、Groovy 、Scala等)、 Lua、 HTTP REST、 Racket和Smalltalk。
複製
MongoDB的開發人員可以保證一個操作已被複製到至少 N 個伺服器上每個運行的基礎。
主從式
由於操作都是在主机,從機將複製任何更改的數據。
例如: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) – 这是一个C++及Qt写成的跨平台桌面程序。
- Fang of Mongo –這是一個網頁式的界面,由Django和jQuery所構成。
- Futon4Mongo – 一個以CouchDB Futon Web為介面的MongoDB克隆版本。
- Mongo3 – Ruby寫成的介面。
- MongoHub –一個OS X應用程式。
- Opricot – 基於瀏覽器的MongoDB shell,由PHP撰寫而成。
- Database Master [https://web.archive.org/web/20200122085236/http://nucleonsoftware.com/ MongoDB Tool for Windows]
- RockMongo [https://web.archive.org/web/20161120092522/http://www.rockmongo.com/downloads Best PHP MongoDB Administrator]轻量级,支持多国语言。
- MongoVUE [https://web.archive.org/web/20200208202006/http://www.mongovue.com/downloads/ Download] CS,图形界面,封装较好。
- MongoDB Compass,MongoDB官方的跨平台GUI。
安全漏洞
2025年12月曝出MongoDB Zlib压缩协议堆内存信息泄露漏洞(称为MongoBleed,),攻击者可以在无需身份验证的情况下,从数据库服务器中提取未初始化的堆内存(Heap Memory)读取信息,影响2017年以来发布的所有版本。该漏洞在12月24日修复。虽然MongoDB称没有证据表明有人利用该漏洞。
著名用戶
*
- Diaspora
*
- foursquare
- bit.ly
- The New York Times
- SourceForge
- Business Insider
- Etsy
- LHC
*
*趨勢科技
參見
- Cassandra
- BSON
- MEAN
- 服务器端脚本
参考文献
外部連結
*
- [http://www.linkedin.com/groups?gid=3265391 mongoDB User Group] on LinkedIn
- [http://nosql.mypopescu.com/tagged/mongodb MongoDB news and articles on myNoSQL]
- Eric Lai. (2009, July 1). [http://www.computerworld.com/s/article/9135086/No_to_SQL_Anti_database_movement_gains_steam_ No to SQL? Anti-database movement gains steam]
- [https://web.archive.org/web/20110714200129/http://www.nosqldatabases.com/main/tag/mongodb MongoDB articles on NoSQLDatabases.com]
- [https://web.archive.org/web/20110905054408/http://nosql.eventbrite.com/ June 2009 San Francisco NOSQL Meetup Page]
- [http://www.technologyreview.com/video/?vid=356 Designing for the Cloud] at MIT Technology Review
- [http://www.slideshare.net/mdirolf/mongodb-europython-2009 EuroPython Conference Presentation]
*
- [https://web.archive.org/web/20110716225319/http://thechangelog.com/post/287597162/episode-0-0-7-mike-dirolf-from-10gen-and-mongodb Interview with Mike Dirolf on The Changelog about MongoDB background and design decisions]
- [http://mongomvc.codeplex.com/ MongoMvc - A MongoDB Demo App with ASP.NET MVC]
- [https://web.archive.org/web/20110627200024/http://www.markus-gattol.name/ws/mongodb.html#faqs FAQs about MongoDB]
评论 (0)