Docs 菜单
Docs 主页
/
MongoDB Manual
/

MongoDB 7.0(稳定版本)发布说明

在此页面上

  • 补丁版本
  • Atlas Search 索引管理
  • 一般性变更
  • 安全性
  • 聚合(Aggregation)
  • 时间序列
  • 分片
  • 6.X 系列快速发布中引入的更改
  • 平台支持
  • 升级程序
  • 降级考虑因素
  • 立即下载
  • 报告问题

本页介绍了 MongoDB 7.0 中引入的更改和新功能。

MongoDB 7.0 是一个主要版本,这意味着 MongoDB Atlas 和本地部署均支持该版本。MongoDB 7.0 包含 MongoDB 6.1、6.2 和 6.3 快速发布中引入的更改。要查看这些快速发布中引入的更改,请参阅 6.X-系列快速发布中引入的更改。

要详细学习;了解主要版本和快速版本之间的差异,请参阅 MongoDB版本控制。

警告

过去的版本限制

以下关键公告会影响某些先前的 MongoDB 版本。如果您的部署依赖于受关键公告影响的功能,请升级到最新的可用补丁版本。

问题
受影响的版本
7.0.0 - 7.0.2
7.0.0 - 7.0.2(由 MetaField 嵌入式对象分片的时间序列集合)
7.0.0 - 7.0.5
7.0.0 - 7.0.6
7.0.0 - 7.0.6

重要

对空字节的不正确中和可能会导致MongoDB Server中的缓冲区过度读取

在 7.0.15 之前的MongoDB 7.0 中,授权用户可能会发出经特殊设计的请求,在MongoDB Server中构造格式不正确的BSON ,从而触发崩溃或接收服务器内存缓冲区过度读取的内容。

此问题会影响MongoDB Server版本:

  • 5.0.0 - 5.0.29

  • 6.0.0 - 6.0.18

  • 7.0.0 - 7.0.14

  • 8.0.0 - 8.0.2

修复的问题:

重要

修复了 CSFLE 和可查询加密自查找可能会将子管道中的值作为明文而不是密文发送的问题

修复的问题:

修复的问题:

修复的问题:

修复的问题:

修复的问题:

重要

修复 MongoDB Server 可能允许成功的不可信连接的问题

由于 CVE- 2024 - 1351 ,在7.0.6之前的 MongoDB 7.0中, 在--tlsCAFileCAFile的某些配置下,MongoDB Server 可能会跳过对等证书验证,这可能导致不可信连接成功。

这可能会有效降低 TLS 提供的安全保证,并打开由于证书验证失败而应关闭的连接。此问题会影响以下 MongoDB Server 版本:

  • 7.0.0 - 7.0.5

  • 6.0.0 - 6.0.13

  • 5.0.0 - 5.0.24

  • 4.4.0 - 4.4.28

CVSS 分数:8.8

CWE:CWE-295:证书验证不正确

修复的问题:

修复的问题:

修复的问题:

修复的问题:

修复的问题:

修复的问题:

本页的其余部分将描述 MongoDB 7.0 中引入的更改和新功能。

从 MongoDB 7.0 开始,您可以使用 mongosh 方法和数据库命令管理 Atlas Search 索引。Atlas Search 索引命令仅适用于托管在 MongoDB Atlas 上的部署,并且要求 Atlas 集群层级至少为 M10。

要管理 Atlas Search 索引,请使用以下命令:

名称
说明

在指定集合上创建 Atlas Search 索引。

删除现有 Atlas Search 索引。

返回指定集合上现有 Atlas Search 索引的信息。

更新现有 Atlas Search 索引。

名称
说明

在指定的集合上创建一个或多个 Atlas Search 索引。

删除现有 Atlas Search 索引。

更新现有 Atlas Search 索引。

名称
说明
列出所有集合或特定集合的抽样查询。

返回指定集合上现有 Atlas Search 索引的信息。

从MongoDB 7.0开始, 只能为 OIDC访问权限令牌指定一个audience oidcIdentityProviders字段。 包含空数组或包含多个字符串的数组的audience字段无效。

有关详细信息,请参阅oidcIdentityProviders 字段。

从 MongoDB 7.0.3(以及 6.0.12 和 5.0.22)开始,您可以删除哈希分片键的索引。

这可以加快使用哈希分片键分片的集合的数据插入速度。在使用 mongosync 时,这还可以加快数据摄取速度。

有关详细信息,请参阅删除哈希分片键索引

从 MongoDB 7.0 开始,慢查询的日志消息包括一个新的缓存刷新时间字段

从版本 7.0 开始,MongoDB 使用默认算法动态调整并发存储引擎事务的最大数量(包括读写票证),以优化过载期间的数据库吞吐量。

下表总结了如何识别 MongoDB 7.0 后版本以及更早版本的过载场景:

版本
诊断过载情况
7.0及更高版本

持续较长时间的大量排队操作很可能表示过载。

并发存储引擎事务(票证)可用性长时间为 0 并表示存在过载。

6.0 及更早版本

持续较长时间的大量排队操作很可能表示过载。

并发存储引擎事务(票证)可用性长时间为 0 可能表明出现过载。

要了解详情,请参阅:

从 MongoDB 7.0 开始,currentOp 命令和 db.currentOp() 方法都包含以下新字段:

从 MongoDB 7.0 开始,currentOp 聚合阶段包含以下新字段:

从 MongoDB 7.0 开始,您可以创建复合通配符索引。复合通配符索引具有一个通配符项以及一个或多个附加索引项。

使用复合通配符索引可支持按已知模式进行查询,并限制集合中索引的总数。

从 MongoDB 7.0 开始,如果您的变更流事件大于 16 MB,则可以使用新的 $changeStreamSplitLargeEvent 阶段将事件拆分为较小的片段。

引入了以下新指标来报告有关大型变更流事件的信息:

serverStatus 在其输出中包含以下新字段:

计划缓存指标
queryAnalyzer 指标

从 MongoDB 7.0 开始,基于槽的查询执行引擎提升了性能,可实现更广泛的查找和聚合查询范围。

慢查询日志消息现在包含一个 queryFramework 字段,用于指示哪个查询引擎完成了该查询:

  • queryFramework: "classic" 表示该查询由经典引擎完成。

  • queryFramework: "sbe" 表示该查询由基于槽的查询执行引擎完成。

从 MongoDB 7.0 开始,您可以使用新的 USER_ROLES 系统变量来返回当前用户的角色

有关包含 USER_ROLES 的使用案例,请参阅查找聚合视图updateOneupdateManyfindAndModify 示例。

从 MongoDB 7.1(以及 7.0、6.3.2、6.0.6 和 5.0.18)开始提供。

MongoDB 包含以下用于数据块迁移的新分片统计信息:

从 MongoDB 7.0 (和6.0.13开始, 5.0.24 ),慢查询日志消息中的totalOplogSlotDurationMicros显示写入操作获取提交时间戳以提交存储引擎写入内容与实际提交之间的时间。 mongod支持并行写入。 但是,它可以按任意顺序提交带有提交时间戳的写操作。

要了解详情,请参阅记录慢速操作。

MongoDB 7.0 新增了以下与 analyzeShardKey 命令相关的参数:

MongoDB 7.0 新增了 autoMergerIntervalSecs 参数,在启用 AutoMerger 后,该参数将用来指定自动合并轮次之间的时间间隔(以秒为单位)。autoMergerIntervalSecs 只能在分片集群的配置服务器上设置。

MongoDB 7.0 新增了 autoMergerThrottlingMS 参数,在启用 AutoMerger 后,该参数用来指定 AutoMerger 在同一集合上发起合并操作的最小时间间隔(以毫秒为单位)。autoMergerThrottlingMS 只能在分片集群的配置服务器上设置。

MongoDB 7.0 新增了 balancerMigrationsThrottlingMs 参数,可限制平衡速率。

MongoDB 7.0 新增了 enableDetailedConnectionHealthMetricLogLines 参数,该参数允许您指定是否在日志中显示一组与集群连接运行状况指标相关的日志消息

MongoDB 7.0 新增了oidcIdentityProviders 参数,允许您在使用 OpenID Connect 身份验证时指定身份提供商 (IDP) 的配置。

MongoDB 7.0 新增了以下与 configureQueryAnalysis 命令相关的参数:

从 MongoDB 7.0 开始,带等值查询的 Queryable Encryption 正式发布。Queryable Encryption 在正式发布版中进行了改进,因而与其公开预览版不兼容,因此在该功能正式发布后不应使用公开预览版。如需详细信息,请参阅 MongoDB 7.0 中的兼容性更改。

MongoDB 7.0(和 6.0.6)新增了 useLegacyProtocol 设置。这样 MongoDB 服务器可连接到使用 KMIP 协议版本 1.0 或 1.1 的 KMIP 服务器。

从 MongoDB 7.0 和 6.0.7 开始,MongoDB 支持在以下操作系统上使用 OpenSSL 3.0 和 OpenSSL FIPS 提供程序:

  • Red Hat Enterprise Linux 9

  • Amazon Linux 2023

  • Ubuntu Linux 22.04

从 MongoDB 8.0 开始,MongoDB 支持 OpenSSL 3.0 和适用于 Amazon Linux 2023.3 的 OpenSSL FIPS 提供程序。

有关详情,请参阅 TLS/SSL(传输加密)。

从 7.0 版本开始,MongoDB Enterprise 支持 OpenID Connect 身份验证。OpenID Connect 是构建在 OAuth2 之上的身份验证层。您可以使用 OpenID Connect 配置 MongoDB 数据库和第三方身份提供商之间的单点登录。

新操作符:

名称
说明

返回中位数(第 50 百分位数)的近似标量值。

此操作符可用作累加器和聚合表达式。

返回与指定的各百分位数一一对应的标量值数组。

此操作符可用作累加器和聚合表达式。

MongoDB 7.0 新增了以下格式说明符,可结合 $dateToString 操作符使用:

说明符
说明
Possible Values
%b
缩写月份名称(3 个字母)
jan-dec
%B
完整月份名称
january-december

MongoDB 7.0 从这些基于 delete 命令的操作中取消了大部分时间序列限制:

从 MongoDB 7.0 开始,可使用 checkMetadataConsistency 命令检查集群、数据库和集合级别的分片元数据是否存在不一致。这些不一致可能源于以下情况:

  • 在集群运行先前 MongoDB 版本遇到错误的情况下进行的升级

  • 手动干预导致集群目录损坏

现在可通过 mongosh 使用以下辅助方法:

有关该命令检查不一致的更多信息,请参阅不一致类型。

从 MongoDB 7.0 开始,mergeAllChunksOnShard 命令查找并合并分片在给定集合所拥有的所有可合并的数据块

从 MongoDB 7.0 开始,AutoMerger 可以自动合并满足可合并性要求的数据段。AutoMerger 默认启用。

从 MongoDB 7.0 开始,可以使用以下方法来控制 AutoMerger 行为:

从 MongoDB 7.0 开始,configureCollectionBalancing 命令接受 enableAutoMerger 参数。使用 enableAutoMerger 设置 AutoMerger 是否考虑此集合。

从 MongoDB 7.0 开始,可以使用 rangeDeleterHighPriority 参数提高或降低孤立文档清理操作相对于用户操作的优先级。

MongoDB 7.0 移除了 operationsBlockedByRefresh 文档,该文档包含有关被目录缓存刷新活动阻塞的操作的统计信息,因为对于 mongos 上每个利用集合路由信息的操作,即使该操作没有被目录刷新活动阻塞,operationsBlockedByRefresh 计数器的计数也会增加。

MongoDB 7.0 新增了 analyzeShardKey 命令和 db.collection.analyzeShardKey() 方法,让您可以计算评估分片键的指标。

MongoDB 7.0 新增了 configureQueryAnalyzer 命令,该命令允许为集合配置查询采样。MongoDB 7.0 还新增了 db.collection.configureQueryAnalyzer(),其中封装了 configureQueryAnalyzer 命令。被采样的查询将向 analyzeShardKey 提供信息,以计算有关分片键的读写分布的指标。

MongoDB 7.0 包含以下快速发布版本的更改和功能:

MongoDB 7.0 不再支持 PPC64LEs390x 架构上的 RHEL 7/CentOS 7/Oracle 7

重要

特征兼容性版本

要从 MongoDB 6.0 部署升级到 MongoDB 7.0,6.0 部署必须将 featureCompatibilityVersion 设置为 6.0。若要检查版本,您可以:

db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )

要升级到 MongoDB 7.0,请参阅针对 您 MongoDB 部署类型的升级说明:

如您在升级到 7.0 版本的过程中需要指导,MongoDB 的专业服务将提供主要版本的升级支持,帮助确保您的 MongoDB 应用程序能够顺利过渡,不会中断。要了解更多信息,请参阅 MongoDB 咨询服务

MongoDB 仅支持单版本降级。您无法降级到比当前版本落后多个版本的版本。

例如,您可以将 7.0 系列部署降级为 6.0 系列部署。但是,不支持将 6.0 系列部署进一步降级为 5.0 系列部署。

从 MongoDB 7.0 开始:

  • MongoDB Community Edition 不再支持二进制降级。

  • 您无法将部署的 fCV 降级到 MongoDB 的快速发布版或从快速发布版降级到 fCV。

  • setFeatureCompatibilityVersion 命令需要附加参数confirm,必须将其设置为 true 才能升级或降级 fCV

  • 如果您升级或降级部署的 fCV,在没有支持人员协助的情况下,您将无法降级 MongoDB Enterprise 部署的二进制版本。

MongoDB 7.0 包含不与早期版本兼容的功能。若要从 7.0 降级到早期版本,您需要删除使用这些功能的数据。

更多信息,请参阅向后不兼容的功能。

要下载 MongoDB 7.0,请访问 MongoDB 下载中心

要报告问题,请参阅 MongoDB GitHub 存储库,了解有关如何为 MongoDB 服务器或其中一个相关项目提交 JIRA 工单的说明。

后退

变更日志