本文介绍 MongoDB 5.0 的主要新特性。
说明
关于 MongoDB 5.0 的更多特性,请参见 Release Notes for MongoDB 5.0。
MongoDB 5.0 原生支持时间序列数据,提供了时间序列集合、集群索引等能力,在提高应用程序构建和运行时间序列速度的同时,减少了数据和索引的磁盘使用量,实现更好的性能和更大的规模。扩展了 MongoDB 在物联网、金融分析、日志解析、物流等方面的应用场景。
您可以在创建集合的 db.createCollection()
命令中,通过 { timeseries: { timeField: "timestamp" } }
字段来指定创建一个时间序列集合。更多详情,请参见 Create a Time Series Collection。
MongoDB 的 Stable API(也称 Versioned API)定义了应用程序读取和写入数据、创建集合和索引、以及执行其他常见任务时最常用的一组命令。Stable API 实现了应用程序生命周期和数据库生命周期的解耦,允许您指定应用程序使用指定版本的 MongoDB API ,即使数据库频繁升级或改进,应用程序也可以在不修改代码的情况下持续运行。
Stable API 支持 MongoDB 在每个 API 版本中为数据库添加新功能(如增加参数、持聚合运算符、新命令等),同时还会保证新版本 API 对早期版本 API 的兼容性,您可以将新版本 API 与现有 API 在同一台服务器上同时运行,方便您更快、更便捷地体验和使用 MongoDB 新特性。
更多详情 ,请参见 Stable API。
从 MongoDB 5.0 开始,Write Concern
默认级别为 majority
,即仅当写入操作被应用到主节点(Primary 节点)且被持久化到大多数从节点日志中时,才会提交并返回成功,提高了数据可靠性保障。关于 Write Concern
的更多信息,请参见 Write Concern。
MongoDB 5.0 启用了新版 MongoDB Shell(即 mongosh),引入了语法高亮、智能自助、上下文帮助等功能,提供了更具体的报错信息和更现代化的命令行体验。关于新版 MongoDB Shell 的更多详情,请参见 mongosh。
MongoDB 5.0 支持在读取数据的一致状态时,对实时事务数据库执行长时间运行的查询(Long-Running Snapshot Queries),长时间运行的快照查询增加了应用程序读取操作的多功能性和弹性。关于长时间运行的快照查询的更多信息,请参见 Query Documents。
从 MongoDB 5.0 开始,若索引创建任务突然中断,该任务会被保存到磁盘,并在节点重启后自动恢复到原来的位置,无需再重新运行创建任务。更多详情,请参见 Index Builds on Populated Collections。
模式验证(Schema Validation)是 MongoDB 数据应用管理控制的一种方式。MongoDB 5.0 优化了模式验证功能,支持通过 validate
命令发现集合中的不一致并返回描述性的错误信息,方便您了解不符合集合验证器验证规则的文档,以及不符合规则的原因,帮助您快速识别和纠正影响验证规则的错误代码。更多详情,请参见 db.collection.validate()。
MongoDB 5.0 支持在业务运行的情况下,通过 reshardCollection
命令完成集合分片键(Shard Key)的更改,方便您根据业务负载的变化,按需更改集合的分片键。整个过程无需停机停服,不涉及复杂的数据迁移操作,简单高效。reshardCollection
命令语法如下。
reshardCollection: "<database>.<collection>", key: <shardkey>
命令语法中各参数说明如下表。
参数 | 说明 |
---|---|
database | 需要重新分片的数据库名称。 |
collection | 需要重新分片的集合名称。 |
shardkey | 分片键的名称。 |
关于 reshardCollection
命令的更多信息,请参见 reshardCollection。