进入MongoDB中文手册(4.2版本)目录
欢迎使用MongoDB 4.2手册!MongoDB是一个文档型数据库,旨在简化开发和扩展。该手册介绍了MongoDB中的关键概念,介绍了查询语言,提供了操作和管理上的注意事项和过程,以及详尽的参考目录。
MongoDB提供数据库的社区版和企业版:
- 社区版本是开源且免费的。
- 企业版需要进一步付费,从而提供对MongoDB部署的全面支持。同时企业版本还增加一些企业关心的特性,例如LDAP(轻量级目录访问协议)和Kerberos(一种网络授权协议)支持,磁盘加密和审计(Auditing)。
1 文档型数据库
MongoDB中的记录是一个文档,它是由字段和值对组成的数据结构。MongoDB文档类似于JSON对象。字段的值可以包括其他文档,数组和文档数组。
使用文档的优点是
- 文档即对象,和许多编程语言原生(native)的数据类型是一致的;
- 嵌入式文档和数组减少了对连接(join)所需的花销;
- 动态的模式,支持流畅的多态性(fluent polymorphism)【注:个人理解为支持数据结构的动态变化】。
1.1 集合/视图/按需实例化视图
MongoDB将文档存储在集合(collections)中,集合类似于关系数据库中的表。
除集合外,MongoDB还支持:
- 只读视图(从MongoDB 3.4开始);
- 按需实例化视图(从MongoDB 4.2开始)。
2 主要特点
2.1 高性能
MongoDB提供高性能的数据持久性。特别是,
- 对嵌入式数据模型的支持,减少了数据库系统上的I / O操作
- 索引支持更快的查询,并且来自嵌入式文档和数组的键可以作为索引
2.2 丰富的查询语言
MongoDB支持丰富的查询语言,以支持读写操作(CRUD)以及:
- 数据聚合;
- 全文搜索和地理空间查询。
可以看一看:
- SQL到MongoDB的映射图;
- SQL到聚合的映射图。
2.3 高可用性
MongoDB的复制工具(称为副本集)提供:
- 自动故障转移;
- 数据冗余。
一个副本集是一组保持相同的数据集,从而提供冗余和提高数据可用性的MongoDB服务器。
2.4 水平可伸缩性
MongoDB的一部分核心功能用于提供水平可伸缩性的能力:
- 分片,将数据分布在一组计算机集群上;
- 从3.4开始,MongoDB支持基于片键(shard key)创建数据区域(zones)。在一个平衡集群中,MongoDB仅将区域覆盖的读写定向到区域内的那些分片。有关 更多信息,请参见区域手册。
2.5 支持多种存储引擎
MongoDB支持多个存储引擎:
- WiredTiger存储引擎(包括对静态加密的支持 )
- 内存(In-Memory)存储引擎。
另外,MongoDB提供可插拔的存储引擎API,允许第三方为MongoDB开发存储引擎。