MongoDB 简介
您可以在以下环境中创建 MongoDB 数据库:
-
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
-
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
-
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
要了解有关使用 Atlas 用户界面创建 MongoDB 数据库的更多信息,请参阅开始使用 Atlas。
文档数据库
MongoDB 中的记录是一个文档,它是由字段和值对组成的数据结构。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档、数组和文档数组。
使用文档的优点是:
-
文档对应于许多编程语言中的原生数据类型。
-
嵌入式文档和数组可以减少成本高昂的的连接操作。
-
动态模式支持流畅的多态性。
集合/视图/按需物化视图
MongoDB 将文档存储在集合中。集合类似于关系数据库中的表。
除了集合之外,MongoDB 还支持:
-
只读视图
-
按需物化视图
-
主要功能
-
高性能
-
MongoDB 提供高性能数据持久性。尤其是,
-
对嵌入式数据模型的支持减少了数据库系统上的 I/O 活动。
-
索引支持更快的查询,并且可以包含嵌入式文档和数组的键。
-
查询 API
-
MongoDB 查询 API 支持读写操作 (CRUD) 以及:
-
数据聚合
-
文本搜索和地理空间查询。
-
另请参阅:
-
SQL 到 MongoDB 的映射表
-
SQL 聚合映射图表
-
高可用性
-
MongoDB 的复制工具称为副本集,它提供以下功能:
-
自动故障转移
-
数据冗余。
-
副本集是一组 MongoDB 服务器,它们维护相同的数据集,并可提供冗余和提高数据可用性。
-
横向可扩展性
-
MongoDB 的核心功能之一是提供横向可扩展性:
-
分片会将数据分布在机器集群上。
-
从 3.4 开始,MongoDB 支持基于分片键创建数据的区域。在均衡的集群中,MongoDB 仅将区域覆盖的读写定向到区域内的那些分片。有关更多信息,请参阅区域手册页面。
-
支持多种存储引擎
-
MongoDB 支持多种存储引擎:
-
WiredTiger Storage Engine(包括对静态加密的支持)
-
用于自我管理部署的内存存储引擎。
-
此外,MongoDB 还提供可插拔的存储引擎 API,从而允许第三方基于 MongoDB 开发存储引擎。