MongoDB 发展历史及各主要版本新特性概述
MongoDB 发展历史及各主要版本新特性概述
MongoDB 是一款强大的、灵活的、易于扩展的通用数据库,广泛应用于各种现代应用程序中。从最初 2007 年的 1.0 版本到今年 10 月份发布的最新的 8.0.3 版本,MongoDB 不断发展,引入了许多重要的新特性和优化。MongoDB 起源于 2007 年,当时由 Dwight Merriman,Eliot Horowitz 和 Kevin Ryan 共同创立的 10gen 公司推出的一种新的数据库解决方案。10gen 公司于 2013 年 2 月更改名称为 MongoDB Inc.,目前已着重发展和改进MongoDB 系统。
以下是 MongoDB 的发展历史及各主要版本的新特性概述。
发展历史
- 早期版本(2009-2012)
- 2009年:MongoDB 1.0 版本发布,标志着 MongoDB 正式进入市场。
- 2010年:MongoDB 1.6 版本引入了分片(Sharding)功能,支持水平扩展。
- 2011年:MongoDB 2.0 版本发布,引入了 GridFS 文件存储系统和更强大的聚合框架。
- 2012年:MongoDB 2.2 版本引入了 Aggregation Framework,提供了更强大的数据处理能力。
- 成熟期(2013-2016)
- 2013年:MongoDB 2.4 版本引入了文本搜索功能,支持全文搜索。
- 2014年:MongoDB 2.6 版本引入了 WiredTiger 存储引擎,显著提升了性能和可扩展性。
- 2015年:MongoDB 3.0 版本发布,引入了 WiredTiger 存储引擎的全面支持,提升了事务处理能力和性能。
- 2016年:MongoDB 3.2 版本引入了 Change Streams,支持实时数据流处理。
- 增强期(2017-2020)
- 2017年:MongoDB 3.4 版本引入了多文档事务支持,进一步增强了数据一致性。
- 2018年:MongoDB 3.6 版本引入了 Sessions 和 Causal Consistency,支持更复杂的事务处理。
- 2019年:MongoDB 4.0 版本发布,全面支持多文档事务,实现了从 NoSQL 到 NewSQL 的跨越。
- 2020年:MongoDB 4.2 版本引入了分布式事务、字段级加密、可重试读等重要特性。
- 创新期(2021-至今)
- 2021年:MongoDB 5.0 版本发布,引入了原生时间序列数据平台、在线重新分片、版本化 API 等新特性。
- 2022年:MongoDB 6.0 版本发布,引入了可查询加密、集群同步、时序集合等新特性。
- 2023年:MongoDB 7.0 版本发布,引入了分片元数据一致性校验、采样查询与分析分片键、自动合并等新特性。
- 2024年:MongoDB 8.0 版本发布,走向融合,支持向量搜索、时间序列、全文搜索、实时分析、流式处理、OLTP等等。
主要版本新特性
MongoDB 4.2
- 分布式事务:采用二段提交方式,保证分片集群事务的 ACID 特性。
- 字段级加密:驱动层面支持字段级加密,提升业务灵活性和安全性。
- 可重试读:提供弱网环境下自动重试能力,保证业务连续性。
- 通配符索引:支持创建通配符索引,覆盖一个文档下的多个特征字段,管理更方便,使用更灵活。
- 物化视图:通过最新的物化视图可以缓存计算结果,避免每次重复计算,提升运行效率,减少逻辑复杂度。
MongoDB 5.0
- 原生时间序列数据平台:支持时序数据,提供时间序列集合、集群索引等能力,扩展了 MongoDB 在物联网、金融行业、监控系统、日志解析、财务分析等业务场景的应用。
- 在线数据重新分片:支持在业务运行的情况下,通过
reshardCollection
命令按需更改集合的分片键,整个过程无需停机或进行复杂的迁移。 - 版本化 API:定义了应用程序最常用的一组命令和参数,确保应用程序在数据库版本升级时的兼容性。
- 新版 MongoDB Shell:重新设计了 MongoDB Shell,引入了语法高亮、智能自助上下文帮助和有用的错误信息,提供了一个更现代化的命令行体验。
- Write Concern 策略默认值调整:默认为
w=majority
,增强数据的可靠性。
MongoDB 6.0
- 可查询加密:支持对特定字段进行加密,确保敏感数据的安全性。
- 集群同步:支持跨集群的数据同步,提升数据冗余和高可用性。
- 时序集合:进一步优化了时序数据的处理能力,提供更高效的存储和查询。
- 变更流:增强变更流功能,支持更复杂的实时数据处理场景。
- 聚合:引入了新的聚合运算符和功能,提升数据处理能力。
MongoDB 7.0
- 支持分片元数据一致性校验:确保分片元数据的一致性,提升系统的可靠性和稳定性。
- 支持采样查询与分析分片键:提供采样查询功能,帮助用户分析和优化分片键。
- 自动合并:自动合并分片,简化管理和维护。
- 优化项:包括安全性、聚合、时序集合、分片等方面的优化,提升整体性能和用户体验。
MongoDB 8.0
走向融合,支持向量搜索、时间序列、全文搜索、实时分析、流式处理、OLTP等等,更多新特性请查看官方文档https://www.mongodb.com/zh-cn/docs/manual/release-notes/8.0/
注意:从 MongoDB 8.0 开始,新的 MongoDB Server 版本(主要版本和次要版本)支持操作系统(OS)供应商定义的最低操作系统次要版本。当操作系统供应商不再支持某个操作系统次要版本之后,MongoDB 会更新 MongoDB Server,以支持下一个操作系统次要版本。
MongoDB 8.0 支持以下最低操作系统次要版本:
- Red Hat Enterprise Linux 8.8
- Red Hat Enterprise Linux 9.3
- SUSE Linux Enterprise Server 15 SP5
- Amazon Linux 2023 版本 2023.3
MongoDB 版本控制
MongoDB 版本控制采用 X.Y.Z
形式,其中的 X.Y
是指版本系列,Z
是指补丁号。
从 MongoDB 5.0 开始,MongoDB 以两个不同的版本系列形式发布:
- 主要发布版本
- 快速发布
对于 MongoDB 4.4 及之前版本,MongoDB 使用生产/开发版本控制系统。请参阅历史版本。
主要发布版本
主要版本大约每年发布一次,会引入新功能和相关改进。MongoDB Atlas 和本地部署支持主要版本。
示例版本:
- 5.0
- 6.0
快速发布
快速发布版本大约每季度发布一次,它不包含主要版本,会引入新的功能和改进。只有 MongoDB Atlas 支持快速发布,本地部署不支持。
快速发布版本不可与 MongoDB Ops Manager 一起使用。
示例版本:
- 5.1
- 5.2
- 5.3
补丁版本
主要版本和快速发布版本均可根据需要提供补丁版本。补丁版本通常包括错误修复和细微改进。
示例版本:
- 5.0.1(主要发布版本的补丁版本)
- 5.2.1(快速发布补丁版本)
发布候选 (RC) 版本
在新的主要版本和快速发布之前,候选发布版本可供早期测试。候选发布版本代表即将发布的版本,其稳定性足以开始测试,但不适合用于生产部署。
示例版本:
- 5.0.0-rc0
- 5.0.0-rc1
- 5.1.2-rc5
驱动程序版本
MongoDB 的版本编号系统与 MongoDB 驱动程序使用的系统不同。
MongoDB Shell (mongosh
)
从 MongoDB 5.0 开始,MongoDB Shell (mongosh
) 与 MongoDB Server 分开发布,并使用自己的版本编号系统。
Database Tools
MongoDB Database Tools 与 MongoDB Server 分开发布,并使用自己的版本编号系统。
历史版本
对于 MongoDB 4.4 及更早版本,MongoDB 版本控制使用生产/开发版本控制方案,并采用 X.Y.Z
形式;其中 X.Y
指代版本系列或开发系列,而 Z
则指补丁版本号。
- 如果
Y
为偶数,则X.Y
指的是版本系列;例如,4.2 版本系列和 4.4 版本系列。发布系列稳定,适合生产。 - 如果
Y
是奇数,则X.Y
表示开发系列;例如,4.3 开发系列和 4.5 开发系列。开发系列仅用于测试环境,不用于生产环境。
例如,在 MongoDB 4.4.7 版本中,4.4 是指版本系列,而 .7 是指补丁版本。
另见:Redhat 7.7 安装最新版 MongoDB 5.0.1 手册
MongoDB 备份恢复