MongoDB是一種由C++編寫而成的文檔型數(shù)據(jù)庫,旨在簡化應用程序開發(fā)和擴展。
在MongoDB中,記錄是一個文檔(Document),它是由字段和值對組成的數(shù)據(jù)結構。MongoDB文檔類似于JSON對象。字段的值可能包括其他文檔、數(shù)組和文檔數(shù)組。

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