对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

MongoDB 8.3中的兼容性更改

重要

MongoDB 8.3 是最新的次要发布。从MongoDB 8.2 开始,针对特定使用案例的本地部署部署(社区和 EA)可使用次要版本。 有关更多信息,请参阅MongoDB版本控制。

要安装支持本地部署使用的最新MongoDB版本,请参阅安装说明。

本页介绍MongoDB 8.3 中引入的更改,这些更改可能会影响与旧版本MongoDB的兼容性。

从 MongoDB 8.3(和 8.2.4)开始,8.0.18,7.0.29),更严格的验证规则应用于复合通配符索引中的 wildcardProjection 规范。不满足新验证要求的现有索引会继续运行,但无法创建不满足这些要求的新索引。

有关验证规则的完整详细信息,请参阅通配符索引限制。

MongoDB 8.3 改进了对 $map$filter$reduce 聚合表达式中数组元素索引的访问权限。您可以使用新的 arrayIndexAs字段设立变量以存储数组元素的索引。如果省略 arrayIndexAs,还可以使用新的 $$IDX 聚合系统变量来访问当前数组元素的索引。

如果创建使用新数组元素索引功能的视图集合验证规则,则必须更新或删除视图或规则,然后再从MongoDB 8.3 降级到早期版本。

从MongoDB 8.3 开始,2dsphereIndexVersion 默认设立为版本 4

如果需要将特征兼容性版本降级到 8.3 以下,必须首先删除 2dsphere 版本 4 索引。

从MongoDB 8.3 开始,查询设置中代表性查询的存储容量大于原始 16 MB BSON文档限制。如果降级到不支持更大容量的版本,则限制将恢复为 16 MB,并且MongoDB可能会丢失一些代表性查询。

To learn how MongoDB populates representative queries, see setQuerySettings.

以下部分提供了从部署中删除向后不兼容功能的信息。如果您要从MongoDB 8.3 降级到早期版本,查看以下部分,确保您的部署在降级后成功运行。

如果您创建的视图使用MongoDB 8.3 中引入的表达式,则在您降级到不支持这些表达式的版本后,这些视图可能会停止工作。

如果需要从 8.3 降级,必须首先更新或删除依赖于目标版本不支持的表达式的任何视图。

如果您创建的视图或集合验证器使用MongoDB 8.3 中引入的参数或变量,则这些对象在您降级后可能会无法通过验证或评估。

如果需要从 8.3 降级,则必须先更新或删除引用目标版本不支持的参数或变量的任何视图或验证器。

MongoDB 8.3 可以使用新的验证语义将集合标记为已验证,而该语义与 8.3 之前的版本不兼容。如果在存在经过验证的集合时尝试降级,降级将失败。

如果需要从 8.3 降级,必须首先将已验证的集合更改为目标版本支持的验证级别,或者删除这些集合。

从MongoDB 8.3 开始,当$facet阶段构造的document大于 100 兆字节限制时, MongoDB会返回ExceededMemoryLimit错误。

在早期版本中,超过内存限制的阶段会返回错误代码 4031700。如果您有显式检查 4031700 的应用程序、驱动程序或工具,则可以调整代码以识别 ExceededMemoryLimit

从MongoDB 8.3 开始,服务器能够解析所有可表示的双精度点的全范围。这包括次正规数,其中最高有效数字有前导零且指数具有最小可能值。在MongoDB的早期版本中,当您尝试解析这些数字时,服务器会返回错误。

有关详细信息,请参阅次正规数。

从MongoDB 8.3 降级到早期版本时,activeBalancerWindowDOW 配置不可用。降级时,负载均衡器默认使用 activeWindow 设置。

无需执行手动降级步骤,但在 8.3 中进行的任何自定义星期 (DOW) 配置在降级后均不应用。

MongoDB 8.3 还包括MongoDB 8.2 中引入的更改。本部分介绍MongoDB 8.2 中引入的兼容性更改。

从MongoDB8.2 开始,如果在独立运行部署中使用CLUSTER_TIME 变量,服务器将返回错误。

从MongoDB8.2 开始,$rankFusion 可以在视图上运行。有关更多信息,请参阅$rankFusion

从MongoDB 8.2 开始,orphanCleanupDelaySecs 的默认值为 3600(之前为 900)。

从MongoDB 8.2 开始(也适用于 8.1.2 和 8.0.13),当完成剩余工作的估计时间为 500 毫秒或更短时,重新分片进入关键部分。

从MongoDB 8.2 开始,cpuNanos 位于 $queryStats 聚合阶段指标中,并包括与查询操作的 CPU 使用率相关的其他指标。cpuNanos 指标仅适用于Linux系统。

在早期版本中,cpuNanos 位于 operationMetrics 中。

在MongoDB 8.2.0 中,即使您未设立showExpandedEventscollectionUUIDupdateDescription.disambiguatedPaths 也会包含在适用的更改事件中。在 8.2.0 之前的MongoDB版本和 8.2 版本中。1在更高版本中,仅当您使用 showExpandedEvents: true 打开变更流时才包含这些字段。

如果从MongoDB 8.2.0升级到MongoDB 8.2.1 或更高版本,collectionUUIDupdateDescription.disambiguatedPaths 将不再出现在变更事件中,除非您在打开流时设立showExpandedEvents

应用程序不应依赖 commitTimestamp。它在MongoDB 8.2.0 中公开,但在MongoDB 8.2.1 及更高版本中默认不存在。

MongoDB 8.2 删除了 catalogCacheIndexMaxEntries 参数。