新聞中心

在 MongoDB 中支持以類似 json 的 bson(一種計算機數(shù)據(jù)交換格式)格式來存儲數(shù)據(jù),因此可以存儲比較復(fù)雜的數(shù)據(jù)類型。MongoDB 最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向?qū)ο笳Z言中函數(shù)調(diào)用,幾乎可以實現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還可以對數(shù)據(jù)建立索引。
MongoDB 官網(wǎng):https://www.mongodb.com/
MongoDB 發(fā)展史
MongoDB 最初由一個名為 10gen 的組織在 2007 年開發(fā)的,并在 2009 年 2 月發(fā)布了 MongoDB 1.0 版本,其中提供了大部分基本的查詢功能。
2009 年 12 月發(fā)布了 MongoDB 1.2 版本,其中引入了 map-reduce(一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于 1TB)的并行運算),讓 MongoDB 擁有了支持大規(guī)模數(shù)據(jù)處理的能力。
2010 年 3 月發(fā)布了 MongoDB 1.4 版本,該版本中引入了創(chuàng)建后臺索引的功能。
2010 年 8 月發(fā)布了 MongoDB 1.6 版本,該版本種引入了一些主要特性,比如用于水平伸縮的分片、具備自動故障轉(zhuǎn)移能力的副本集以及對 IPv6 的支持。
2012 年 8 月發(fā)布了 MongoDB 2.2 版本,該版本引入了聚合管道功能,可以將多個數(shù)據(jù)處理步驟組合成一個操作鏈。
2013 年 3 月發(fā)布了 MongoDB 2.4 版本,并在 Mongo Shell(一個與 MongoDB 交互的組件)中引入了文本搜索和谷歌的 V8 JS 引擎等增強功能。另外,還發(fā)布了 MongoDB 的企業(yè)版,企業(yè)版中另外提供了監(jiān)控和安全集成等附加功能。
2015 年 3 月發(fā)布了 MongoDB 3.0 版本,該版本中引入了新的 WiredTiger 存儲引擎、可插拔存儲引擎 API 并增加了 50 個副本集限制和安全改進。同年晚些時候又發(fā)布了 MongoDB 3.2 版本,該版本增加了文檔驗證、部分索引的功能。
2017 年 11 月發(fā)布了 MongoDB 3.6 版本,該版本為多集合連接查詢、變更流和使用 JSON 模式進行文檔驗證提供了更好的支持。MongoDB 3.6 是微軟 Azure CosmosDB(截止到 2020 年 8 月)能夠支持的最新版本。
2018 年 6 月發(fā)布了 MongoDB 4.0 版本,該版本提供了跨文檔處理事務(wù)的能力。
2019 年 8 月發(fā)布了 MongoDB 4.2 版本,該版本中引入分布式事務(wù)處理的能力。
為什么要使用 MongoDB
市面上的數(shù)據(jù)庫軟件眾多,我們?yōu)槭裁匆x擇 MongoDB 呢?換句話說就是 MongDB 有什么優(yōu)勢呢?下面列舉了幾點原因。
1) 面向文檔
由于 MongoDB 是 NoSQL 類型的數(shù)據(jù)庫,它不是像關(guān)系類型數(shù)據(jù)庫那樣以固定的格式存儲數(shù)據(jù),而是將數(shù)據(jù)存儲在文檔中,這使 MongoDB 非常靈活,可以適應(yīng)實際的商業(yè)環(huán)境和需求;
2) 臨時查詢
MongoDB 支持按字段、范圍和正則表達式查詢并返回文檔中的數(shù)據(jù);
3) 索引
可以創(chuàng)建索引以提高 MongoDB 中的搜索性能,文檔中的任何字段都可以建立索引;
4) 復(fù)制
MongoDB 支持高可用性的副本集。副本集由兩個或多個 MongoDB 數(shù)據(jù)庫實例組成,每個副本集成員可以隨時充當(dāng)主副本或輔助副本的角色,主副本是與客戶端交互并執(zhí)行所有讀/寫操作的主服務(wù)器。輔助副本使用內(nèi)置復(fù)制維護主副本種的數(shù)據(jù)。當(dāng)主副本失敗時,副本集將自動切換到輔助副本,然后將輔助副本作為主服務(wù)器;
5) 負載平衡
MongoDB 可以在多臺服務(wù)器上運行,以平衡負載或復(fù)制數(shù)據(jù),以便在硬件出現(xiàn)故障時保持系統(tǒng)正常運行。
適用場景
MongoDB 的主要目標是在鍵/值存儲方式和傳統(tǒng)的 RDBMS(關(guān)系型數(shù)據(jù)庫)系統(tǒng)之間架起一座橋梁,它集兩者的優(yōu)勢于一身。根據(jù)官方網(wǎng)站的描述,MongoDB 適用于以下場景。
1) 網(wǎng)站數(shù)據(jù)
MongoDB 非常適合實時的插入、更新與查詢數(shù)據(jù),并具備網(wǎng)站實時存儲數(shù)據(jù)所需的復(fù)制及高度伸縮的特性;
2) 緩存
由于性能很高,MongoDB 也適合作為信息基礎(chǔ)設(shè)施的緩存層,在系統(tǒng)重啟之后,由 MongoDB 搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過載;
3) 龐大的、低價值的數(shù)據(jù)
使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫存取大量數(shù)據(jù)時,數(shù)據(jù)庫的運行效率往往并不盡人意,而 MongoDB 的出現(xiàn)使這個問題迎刃而解,MongoDB 非常適合龐大數(shù)據(jù)的存儲;
4) 高伸縮性的場景
MongoDB 內(nèi)置了 MapReduce 引擎,因此非常適合由數(shù)十或數(shù)百臺服務(wù)器組成的數(shù)據(jù)庫;
5) 用于對象及 JSON 數(shù)據(jù)的存儲
MongoDB 的 BSON 數(shù)據(jù)格式非常適合文檔化格式的存儲及查詢。
說了這么多 MongoDB 的好處,但它也不是萬能的,比如以下這幾個地方就不適合使用 MongoDB:
- 高度事務(wù)性的系統(tǒng):例如銀行或會計系統(tǒng),傳統(tǒng)的關(guān)系型數(shù)據(jù)庫目前還是更適用于需要大量原子性復(fù)雜事務(wù)的應(yīng)用程序;
- 傳統(tǒng)的商業(yè)智能應(yīng)用:針對特定問題的 BI(全稱“Business Intelligence”,中文意思為“商業(yè)智慧或商務(wù)智能”,指用現(xiàn)代數(shù)據(jù)倉庫技術(shù)、線上分析處理技術(shù)、數(shù)據(jù)挖掘和數(shù)據(jù)展現(xiàn)技術(shù)進行數(shù)據(jù)分析以實現(xiàn)商業(yè)價值)數(shù)據(jù)庫會產(chǎn)生高度優(yōu)化的查詢方式,對于此類應(yīng)用,數(shù)據(jù)倉庫可能是更合適的選擇;
- 需要復(fù)雜 SQL 查詢的應(yīng)用。
當(dāng)前名稱:MongoDB是什么
網(wǎng)站鏈接:http://www.5511xx.com/article/djhhsjp.html


咨詢
建站咨詢
