MongoDB 是一个开源的、基于分布式文件存储的 NoSQL 文档型数据库,使用 C++ 语言编写。其设计目标是为现代 Web
应用提供一种可扩展的高性能数据存储解决方案。

什么是“文档型数据库”?
在 MongoDB 中,数据库中的每条记录称为一个 文档(Document),其格式是一种名为 BSON(Binary JSON)的数据结构。BSON 类似于
JSON,但支持更多的数据类型(如日期、二进制数据等)。

https://docs.mongodb.com/manual/_images/crud-annotated-document.bakedsvg.svg

文档型数据库的主要优势体现在:

自然的数据映射:文档的结构(键值对)与大多数编程语言中的对象、字典或映射类型天然对应,简化了开发。

内嵌数据模型:通过嵌入式文档和数组,可以在单个文档中表示复杂的层级关系,减少了对多表连接(Join)的需求,提升了查询效率。

动态模式:同一个集合中的文档可以拥有不同的结构(字段),这为数据模型的演进和多态性提供了极大的灵活性。

MongoDB 的核心特性
高性能持久化:通过内存映射、高效的存储引擎和丰富的索引支持,实现高速的数据读写。

强大的查询语言:提供丰富的查询操作符和聚合框架,支持从简单到复杂的数据检索与分析。

高可用性:通过副本集(Replica Set)架构提供自动故障转移和数据冗余,确保服务持续可用。

水平可扩展性:通过分片(Sharding)技术,可以将数据分布到多个服务器上,以支持海量数据和高并发访问。

多存储引擎支持:支持如 WiredTiger、In-Memory 等多种存储引擎,以适应不同的 workload 需求。