MongoDB 数据库
- MongoDB 是一个文档数据库,旨在简化开发和扩展
- MongoDB 中的记录是一个文档 Document,是由字段和值对组成的数据结构
- MongoDB 文档类似于 JSON 对象,字段的值可能包括其他文档、数组和文档数组
使用文档的优势
- 文档(即对象)在许多编程语言里面都是原生的数据类型(即直接支持的数据类型)
- 嵌入式文档和数组减少了对连接的需求
- 动态模式支持流畅的多态性
集合/视图/按需物化视图
MongoDB 将文档存储在集合中,集合类似于关系数据库中的表,除了集合之外,MongoDB还支持:
- 只读视图(从MongoDB 3.4开始)
- 按需物化视图(从mongodb4.2开始)
主要特征
高性能
MongoDB 提供了高性能的数据持久性
- 对嵌入式数据模型的支持减少了数据库系统上的I/O活动
- 索引支持更快的查询,并且可以包含来自嵌入文档和数组的键
丰富的查询语言
MongoDB 支持丰富的查询语言来支持读写操作(CRUD)以及:
- 数据聚合
- 文本搜索和地理空间查询
高可用性
MongoDB 的复制工具(称为副本集)提供:
- 自动故障转移
- 数据冗余
副本集是维护相同数据集的一组 MongoDB 服务器,提供冗余并提高数据可用性
横向可扩展性
MongoDB 作为其核心功能的一部分提供了水平可扩展性:
- 分片将数据分布在计算机集群中
- 从3.4开始,MongoDB 支持基于 shard 密钥创建数据区域
- 在平衡集群中,MongoDB 只将区域覆盖的读写操作定向到区域内的碎片
支持多个存储引擎
MongoDB支持多种存储引擎:
- WiredTiger 存储引擎(包括对静态加密的支持)
- 内存存储引擎
此外,MongoDB 还提供了可插入的存储引擎API,允许第三方为 MongoDB 开发存储引擎