什么是MongoDB ?
MongoDB 是由C++語(yǔ)言編寫(xiě)的開(kāi)源數(shù)據(jù)庫(kù)系統(tǒng)。
在高負(fù)載的情況下,添加更多的節(jié)點(diǎn),可以保證服務(wù)器性能。
MongoDB 旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。

MongoDB 將數(shù)據(jù)存儲(chǔ)為一個(gè)文檔。MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)。
FirstName="Arun", Address="St. Xavier's Road", Spouse=[{Name:"Kiran"}], Children=[{Name:"Rihit", Age:8}].
FirstName="Sameer",Address="8 Gandhi Road".
注意:以上數(shù)據(jù)有兩個(gè)不同的文檔(以"."分隔)。以這種方式存儲(chǔ)數(shù)據(jù)即為文件存儲(chǔ)的數(shù)據(jù)庫(kù)。 MongoDB是一個(gè)面向文檔的數(shù)據(jù)庫(kù)。
MongoDB的下載
在MongoDB官網(wǎng)下載該安裝包,地址為:https://www.mongodb.com/try/download/community。
MongoDB的特點(diǎn)
- 面向集合存儲(chǔ),易存儲(chǔ)對(duì)象類型的數(shù)據(jù)。
- 模式自由
- 支持動(dòng)態(tài)查詢
- 可通過(guò)網(wǎng)絡(luò)訪問(wèn)
- 支持查詢
- 支持復(fù)制和故障恢復(fù)
- 支持完全索引,包含內(nèi)部對(duì)象
- 文件存儲(chǔ)格式為BSON(一種JSON的擴(kuò)展)
- 自動(dòng)處理碎片,以支持云計(jì)算層次的擴(kuò)展性
- 使用高效的二進(jìn)制數(shù)據(jù)存儲(chǔ),包括大型對(duì)象(如視頻等)
- 支持 Golang,RUBY,PYTHON,JAVA,C++,PHP,C# 等多種語(yǔ)言
- MongoDB安裝簡(jiǎn)單。
MongoDB 的發(fā)展歷史
- 2019年08月13日,MongoDB 4.2.0 發(fā)布,引入分布式事務(wù)
- 2018年08月06日,MongoDB 4.0.2發(fā)布,支持多文檔事務(wù)
- 2017年03月17日,MongoDB 3.0.1發(fā)布
- 2013年11月01日,MongoDB 2.4.8 發(fā)布
- 2013年08月20日,MongoDB 2.4.6 發(fā)布
- 2013年04月23日,MongoDB 2.4.3 發(fā)布,此版本包括了一些性能優(yōu)化,功能增強(qiáng)以及bug修復(fù)
- 2012年06月06日,MongoDB 2.0.6 發(fā)布,分布式文檔數(shù)據(jù)庫(kù)
- 2012年05月23日,MongoDB2.1 開(kāi)發(fā)分支發(fā)布了! 該版本采用全新架構(gòu),包含諸多增強(qiáng)
MongoDB 的語(yǔ)言支持
MongoDB有官方的驅(qū)動(dòng)如下:
MongoDB 的適用場(chǎng)景
MongoDB 的主要目標(biāo)是在鍵/值存儲(chǔ)方式(提供了高性能和高度伸縮性)和傳統(tǒng)的RDBMS 系統(tǒng)(具有豐富的功能)之間架起一座橋梁,它集兩者的優(yōu)勢(shì)于一身。根據(jù)官方網(wǎng)站的描述,Mongo 適用于以下場(chǎng)景。
- 網(wǎng)站數(shù)據(jù):Mongo 非常適合實(shí)時(shí)的插入,更新與查詢,并具備網(wǎng)站實(shí)時(shí)數(shù)據(jù)存儲(chǔ)所需的復(fù)制及高度伸縮性。
- 緩存:由于性能很高,Mongo 也適合作為信息基礎(chǔ)設(shè)施的緩存層。在系統(tǒng)重啟之后,由Mongo 搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過(guò)載。
- 高伸縮性的場(chǎng)景:Mongo 非常適合由數(shù)十或數(shù)百臺(tái)服務(wù)器組成的數(shù)據(jù)庫(kù),Mongo 的路線圖中已經(jīng)包含對(duì)MapReduce 引擎的內(nèi)置支持。
- 用于對(duì)象及JSON 數(shù)據(jù)的存儲(chǔ):Mongo 的BSON 數(shù)據(jù)格式非常適合文檔化格式的存儲(chǔ)及查詢。
MongoDB 的使用也會(huì)有一些限制,例如,它不適合于以下幾個(gè)地方。
- 高度事務(wù)性的系統(tǒng):例如,銀行或會(huì)計(jì)系統(tǒng)。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)目前還是更適用于需要大量原子性復(fù)雜事務(wù)的應(yīng)用程序。
- 傳統(tǒng)的商業(yè)智能應(yīng)用:針對(duì)特定問(wèn)題的BI 數(shù)據(jù)庫(kù)會(huì)產(chǎn)生高度優(yōu)化的查詢方式。對(duì)于此類應(yīng)用,數(shù)據(jù)倉(cāng)庫(kù)可能是更合適的選擇。
- 需要SQL 的問(wèn)題。
MongoDB 應(yīng)用案例
下面列舉一些公司MongoDB的實(shí)際應(yīng)用:
- Craiglist上使用MongoDB的存檔數(shù)十億條記錄。
- FourSquare,基于位置的社交網(wǎng)站,在Amazon EC2的服務(wù)器上使用MongoDB分享數(shù)據(jù)。
- Shutterfly,以互聯(lián)網(wǎng)為基礎(chǔ)的社會(huì)和個(gè)人出版服務(wù),使用MongoDB的各種持久性數(shù)據(jù)存儲(chǔ)的要求。
- bit.ly, 一個(gè)基于Web的網(wǎng)址縮短服務(wù),使用MongoDB的存儲(chǔ)自己的數(shù)據(jù)。
- spike.com,一個(gè)MTV網(wǎng)絡(luò)的聯(lián)營(yíng)公司, spike.com使用MongoDB的。
- Intuit公司,一個(gè)為小企業(yè)和個(gè)人的軟件和服務(wù)提供商,為小型企業(yè)使用MongoDB的跟蹤用戶的數(shù)據(jù)。
- sourceforge.net,資源網(wǎng)站查找,創(chuàng)建和發(fā)布開(kāi)源軟件免費(fèi),使用MongoDB的后端存儲(chǔ)。
- etsy.com ,一個(gè)購(gòu)買(mǎi)和出售手工制作物品網(wǎng)站,使用MongoDB。
- 紐約時(shí)報(bào),領(lǐng)先的在線新聞門(mén)戶網(wǎng)站之一,使用MongoDB。
- CERN,著名的粒子物理研究所,歐洲核子研究中心大型強(qiáng)子對(duì)撞機(jī)的數(shù)據(jù)使用MongoDB。
更多建議: