新聞中心

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


咨詢
建站咨詢
