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