MongoDB是一種由C++編寫而成的文檔型數(shù)據(jù)庫(kù),旨在簡(jiǎn)化應(yīng)用程序開發(fā)和擴(kuò)展。
在MongoDB中,記錄是一個(gè)文檔(Document),它是由字段和值對(duì)組成的數(shù)據(jù)結(jié)構(gòu)。MongoDB文檔類似于JSON對(duì)象。字段的值可能包括其他文檔、數(shù)組和文檔數(shù)組。
雖然,MongoDB數(shù)據(jù)庫(kù)中的記錄是類似于JSON的鍵值對(duì),但它與JSON不完全相同。MongoDB數(shù)據(jù)庫(kù)中的記錄是序列化的二進(jìn)制格式,即BSON。可以認(rèn)為BSON是JSON文檔的二進(jìn)制表示。
MongoDB數(shù)據(jù)庫(kù)的主要特點(diǎn)有:
(1)高性能:MongoDB 通過(guò)分布式緩存和聚合策略來(lái)提高查詢性能,支持大規(guī)模的數(shù)據(jù)存儲(chǔ)和處理,對(duì)嵌入式數(shù)據(jù)模型的支持減少了數(shù)據(jù)庫(kù)系統(tǒng)上的I/O活動(dòng);使用索引支持更快的查詢,并且索引可以包含來(lái)自嵌入式文檔及數(shù)組的鍵。
(2)高可用性:MongoDB的的復(fù)制功能,稱之為副本集,提供了自動(dòng)故障轉(zhuǎn)移和數(shù)據(jù)冗余。副本集是一組維護(hù)相同數(shù)據(jù)集的MongoDB服務(wù),其提供冗余并增加數(shù)據(jù)可用性。
(3)文檔型數(shù)據(jù)庫(kù):MongoDB 是一個(gè)基于文檔的數(shù)據(jù)庫(kù),每個(gè)文檔都是一個(gè)記錄,包含鍵值對(duì)。
(4)嵌入式 SQL:MongoDB 使用 C++ 編程語(yǔ)言編寫,支持嵌入式 SQL,使得開發(fā)人員可以更方便地進(jìn)行查詢和操作數(shù)據(jù)。MongoDB中的Query API支持讀寫操作(CRUD)以及數(shù)據(jù)聚合、文本搜索和地理空間查詢。
(5)水平可伸縮性:MongoDB提供的水平可擴(kuò)展性作為其核心功能的一部分,能夠分片將數(shù)據(jù)分布在一個(gè)機(jī)器集群上。從3.4版本開始,MongoDB支持基于shard key創(chuàng)建數(shù)據(jù)區(qū)域。在一個(gè)平衡的集群中,MongoDB只將一個(gè)區(qū)域覆蓋的讀寫定向到該區(qū)域內(nèi)的那些分片。
(6)支持多個(gè)存儲(chǔ)引擎:MongoDB支持多種存儲(chǔ)引擎:WiredTiger存儲(chǔ)引擎(包括對(duì)靜態(tài)加密的支持),內(nèi)存存儲(chǔ)引擎。此外,MongoDB提供了可插拔的存儲(chǔ)引擎API,允許第三方為MongoDB開發(fā)存儲(chǔ)引擎。
目前,MongoDB主要有三種類型:
(1)MongoDB Atlas
是一個(gè)集成云數(shù)據(jù)庫(kù)和數(shù)據(jù)服務(wù)的套件。該版提供了云服務(wù),數(shù)據(jù)可以存儲(chǔ)在其提供的云端,以加速和簡(jiǎn)化使用數(shù)據(jù)進(jìn)行構(gòu)建的方式。
(2)Enterprise Advanced
自行運(yùn)行MongoDB數(shù)據(jù)庫(kù),MongoDB提供系列產(chǎn)品和服務(wù),以便企業(yè)能夠安全、高效的控制自己的MongoDB數(shù)據(jù)庫(kù)。
(3)MongoDB Community
社區(qū)版,可供開發(fā)者學(xué)習(xí)MongoDB的免費(fèi)版本,同時(shí)可以提供強(qiáng)大的查詢方式和數(shù)據(jù)分析功能。
|
新聞熱點(diǎn)
疑難解答
圖片精選