重要
MongoDB 8.3 是最新的次要发布。从MongoDB 8.2 开始,针对特定使用案例的本地部署部署(社区和 EA)可使用次要版本。 有关更多信息,请参阅 MongoDB版本控制。
要安装支持本地部署使用的最新MongoDB版本,请参阅安装说明。
补丁版本
8.3.5 - 即将推出
此版本包含重要的安全和可靠性改进。
修复的问题:
SERVER-79980 支持 Windows 的 TLS 1.3
SERVER-83322 复合通配符索引边界在过滤器包含 CWI 外的字段时恢复为 [MinKey, MaxKey]
服务器-108215 对活跃的多文档事务数量强加限制
服务器-127346 使会话刷新具有 kExempt 入场优先级
8.3.4 - 六月 11、2026
重要
MongoDB 8.3.4包含 CVE-2026 - 的修复11933
有关MongoDB安全更新的最新信息,请参阅MongoDB安全公告。
修复的问题:
服务器-128125 使 bsonObjToArray 所有权语义与 bsonGetImmutable 对齐
8.3.3 - 六月 9、2026
重要
基于成本的排名器:
从 MongoDB 8.3 开始,多计划同 CBR 备份是符合条件的查询的默认计划选择机制。在短暂的试用期间,多计划器会尝试找到能在这个短暂时间内返回结果集的计划。如果尝试失败,MongoDB 会应用一系列规则来确定多计划器是否应继续,或者 CBR 是否应评估计划中的每个节点以确定最优计划。
SERVER-118434 使 CBR 在查询规划期间可以使用
服务器-115402 将
explain输出添加到 CBRSERVER-120369 为 CBR 添加
serverStatus指标SERVER-117199 为 CBR 添加
$queryStats指标
有关更多信息,请参阅 查询计划选项。
修复的问题:
服务器-115250 在静止时间暂停 JWKSetRefreshJob
服务器-121822 聚集文档无法正确过滤出
$lt在_id上的结果服务器-125887 增加对 gRPC 出口加密 PEM 文件的支持
服务器-126049 MozJS 每范围堆限制检查使用进程全局 GC 计数器
WT-16780
WT_PANIC检查点失败中的错误上下文不足__wt_block_checkpoint_resolve服务器-126506 从出口日志中删除 SASL 参数
服务器-125063 禁止在 BSONColumn 内嵌套 BSONColumn
服务器-123507
$vectorSearch预筛选器内的加密谓词应替换为加密占位符服务器-124183 限制身份验证的范围
服务器-124190 禁止来自非内部客户端的聚合
exchange字段服务器-123918 验证 IDL 中的
runtimeConstants.userRolesSERVER-123951
$_internalConvertBucketIndexStats不应在索引转换失败时返回 PauseExecution服务器-124031 确保
Exchange::getTargetConsumer正确处理 MaxKey服务器-123633 修复处理用户 $- 前缀字段与内部元数据冲突的问题
服务器-123370通过 setParameter 设置时会日志 LDAP 查询密码
服务器-123440 具有严格绕组多边形的 GeometryCollection 会导致 2dsphere 索引键生成崩溃
SERVER-124959 验证文档差异数组边界和
$_internalApplyOplogUpdateBSON
8.3.2 - 5 月12 、 2026
重要
MongoDB 8.3.2包含 CVE-2026 - 的修复8053
有关MongoDB安全更新的最新信息,请参阅MongoDB安全公告。
修复的问题:
服务器-126021 将具有重复字段名称的数据插入时间序列集合时出现未定义行为
8.3.1 - 5 月4 、 2026
重要
MongoDB 8.3.1包含针对以下问题的修复:
有关MongoDB安全更新的最新信息,请参阅MongoDB安全公告。
修复的问题:
SERVER-121610 确保缓存的
emit()调用为空操作服务器-121895 改进对验证错误的日志校订
服务器-124974 确保
$match下推分析期间的内存寿命
8.3.0 - 5 月4 、 2026
重要
MongoDB 8.3 包括以下修复:CVE-2025-12893、CVE-2025-13507、CVE-2025-14345、CVE-2026-8336 和 CVE-2026-9754。
有关MongoDB安全更新的最新信息,请参阅MongoDB安全公告。
一般性变更
$scoreFusion 聚合阶段已普遍可用
从 MongoDB 8.3 开始,$scoreFusion 聚合阶段可广泛使用 (GA)。(相关的 $rankFusion 聚合阶段从 MongoDB 8.0 开始可广泛使用。)
访问 $map、$ 过滤和 $reduce 中的数组元素索引
MongoDB 8.3 改进了对 $map、$filter 和 $reduce 聚合表达式中数组元素索引的访问权限。您可以使用新的 arrayIndexAs字段设立变量以存储数组元素的索引。如果省略 arrayIndexAs,还可以使用新的 $$IDX 聚合系统变量来访问当前数组元素的索引。
FTDC 统计
从MongoDB 8.3 开始,全时诊断数据捕获 (FTDC) 收集 connPoolStats 指标的 mongod 进程。
serverStatus 输出
serverStatus 在其输出中包含以下新字段:
aggregate.withExtensionmetrics.commands.aggregate中的子字段,跟踪成功和失败计数queues.execution.read.normalPriority.totalDelinquentAcquisitionsqueues.execution.read.normalPriority.totalAcquisitionDelinquencyMillisqueues.execution.read.normalPriority.maxAcquisitionDelinquencyMillis
MongoDB 8.3 删除 serverStatus 输出中的 service字段。
从 MongoDB 8.3 开始,您可以通过指定 none: 1 从 serverStatus 输出中排除所有可选字段。排除所有可选字段后,您可以指定要包含的字段。
有关详细信息,请参阅排除所有可选字段。
您还可以选择在 serverStatus 命令中指定 lockContentionMetrics: 1,以在输出中包含 lockContentionMetrics。
string 转换增强功能
从MongoDB 8.3 开始,$toString 可以将其他BSON 类型转换为字符串,包括对象、数组、正则表达式、MaxKeys、MinKeys 和时间戳。有关详细信息,请参阅 $toString。
MongoDB 8.3 为 $convert 引入了可选的 base 参数,以使用 2、8、10 和 16 基数在 string 值和数值之间进行转换。有关详细信息,请参阅 $convert。
数组转换增强功能
从MongoDB 8.3 开始,您可以使用$convert或速记表达式$toArray转换表示数组的字符串。
您还可以在 binData 和数值数组之间进行转换。有关详细信息,请参阅将 binData 转换为数组和将数值数组转换为 binData。
对象转换增强功能
地理空间索引生成
从MongoDB 8.3 开始,如果文档同时包含GeoJSON和旧版数字坐标字段,地理空间索引生成会优先考虑GeoJSON坐标。
如果您的文档包含位于GeoJSON坐标之前的旧版数字坐标值,并且现有索引依赖于该行为,则您可能需要重建地理空间索引。
如果您的document包含优先于GeoJSON坐标的旧版数字坐标值,并且现有索引依赖于该行为,则此更改可能要求您重建地理空间索引。查看地理空间查询以确认它们返回预期结果。
删除分片更改
从MongoDB 8.3 开始,removeShard 命令已弃用。此发布引入了四个新命令来替换 removeShard,并对分片排干和删除进程提供精细控制。
MongoDB提供了四个附加命令,用于从嵌入式配置服务器过渡到专用配置服务器。
PreAuth 连接限制参数
MongoDB 8.3 添加了三个新的服务器参数,用于限制预身份验证连接的资源消耗:
cachePressureQueryPeriodMilliseconds 参数
MongoDB 8.3 添加了 cachePressureQueryPeriodMilliseconds 参数,用于设置MongoDB在检查存储引擎缓存压力之间的等待时间间隔。如果存储引擎面临缓存压力, MongoDB会中止最早的ACID 事务。有关详细信息,请参阅 cachePressureQueryPeriodMilliseconds。
DiagnosticDataCollectionDirectorySizeMB 参数
MongoDB 8.3 将 diagnosticDataCollectionDirectorySizeMB 的默认值从 200 增加到 500 MiB。
loadAwareServerSelectionEnabled 参数
MongoDB 8.3 添加了 overloadAwareServerSelectionEnabled 参数,该参数控制针对集群中其他服务器的重试是否会避免最近返回标记为 SystemOverloadedError 的错误的节点。您可以启用此参数以选择启用过载感知重定向。
ingressRequestRateLimiterApplicationExemptions Parameter
从MongoDB 8.3 开始,您可以通过 ingressRequestRateLimiterApplicationExemptions 参数指定不受入口请求速率限制限制的应用程序。有关详细信息,请参阅 ingressRequestRateLimiterApplicationExemptions。
数据库分析器参数和指标
MongoDB 8.3 添加了两个参数,可让您控制数据库分析器对查询性能的影响:
MongoDB 8.3 还添加了两个相关的 serverStatus指标:
重试参数
MongoDB 8.3 添加了参数,用于配置内部服务器端客户端(在 mongos 和 mongod 之间)在重试由于过载而失败的操作时如何后退。
更新或插入(upsert)错误的 BSONObjectTooLarge 代码
从 8.3 开始,生成过大BSON对象的更新或插入(upsert)操作会返回10334 BSONObjectTooLarge 错误代码。在早期版本中,生成过大BSON对象的更新或插入(upsert)操作会返回 17419 或 17420 错误代码。
validate 命令更新
从 8.3 开始,当 full 为 true 时,MongoDB 不再自动启用 db.collection.validate() 方法中的 checkBSONConformance 字段。此外,db.collection.validate() 方法现在会进行检查,以确保集合没有任何超过 16 MB 的 document。
新建表达式 $subtype
MongoDB 8.3 引入了新的 $subtype 表达式来提取binary数据对象的子类型。
用于扩展JSON转换的新表达式
MongoDB 8.3 引入了新的聚合表达式,用于在BSON和扩展JSON (EJSON) 格式之间进行转换:
$serializeEJSON— 使用类型包装器将BSON值转换为扩展JSON格式。支持规范和宽松扩展JSON格式。$deserializeEJSON— 将扩展JSON格式转换回原生BSON值。
这些表达式可以与 $convert 结合使用来解析JSON字符串,将扩展JSON值转换为原生BSON值,然后转换回JSON格式。
新建表达式 $createObjectId
从MongoDB 8.3 开始,您可以使用 $createObjectId 在管道和基于表达式的更新中生成新的随机 ObjectId() 值。
新的哈希表达式
MongoDB 8.3 引入两个新的聚合表达式,用于从 UTF-8 字符串或 binary 数据生成哈希:
New $meta Keyword
MongoDB 8.3 为 $meta 表达式引入了一个新的 "searchRootDocumentId" 关键字。您可以使用此关键字返回 $search 结果集中嵌入式文档的根文档的 _id 值。要了解更多信息,请参阅 searchRootDocumentId。
Unix纪元前日期
从MongoDB 8.3 开始,如果 unit 在 $dateAdd 或 $dateSubtract 中不是 "millisecond",并且 input 日期在 ISODate("1970-01-01T00:00:00Z") 之前,则结果将比MongoDB的上一个版本延迟一秒。这还会影响执行基于时间的计算(例如 $setWindowFields 和 $densify)的聚合结果。
地理空间索引生成
MongoDB 8.3 继续MongoDB 8.2 中引入的行为。如果document同时包含GeoJSON和传统数字坐标字段,地理空间索引生成会优先考虑GeoJSON坐标。
如果您的文档包含位于GeoJSON坐标之前的旧版数字坐标值,并且现有索引依赖于该行为,则您可能需要重建地理空间索引。
如果您的文档包含优先于GeoJSON坐标的旧版数字坐标值,并且现有索引依赖于该行为,则此更改可能要求您重建地理空间索引。查看地理空间查询以确认它们返回预期结果。
$convert 管道中的次正规数
从MongoDB 8.3 开始,服务器能够解析所有可表示的双精度点的全范围。这包括次正规数,其中最高有效数字有前导零且指数具有最小可能值。
有关详细信息,请参阅次正规数。
$trim、$ltrim 和 $rtrim 的 chars 长度限制
从MongoDB 8.3 开始,您提供给 chars 的字符串长度限制为 4096 个字符。有关详细信息,请参阅 $trim 限制。
窗口功能
从MongoDB8.3 开始,您可以在 操作中使用$mergeObjects $setWindowFields。
sp. 进程() limit Option
从MongoDB 8.3 开始,sp.process() 支持 options.limit input 参数。在 sp.process() 返回 limit 个 document 到终端后,会话结束。
查询引擎中的文本搜索溢出
从MongoDB 8.3 开始,查询引擎将 TextOr 阶段的内存使用量限制为 100 MB。TextOr 阶段处理读取文本分数元数据的 $text 查询。示例,TextOr 处理按文本分数对结果进行排序的查询。如果 TextOr 阶段超过此限制:
如果
allowDiskUse为true,则该阶段会将中间结果溢出到磁盘。如果
allowDiskUse为false,则查询失败,并显示超出内存限制错误。
在早期版本中,TextOr 阶段没有内存限制,并且会无限制地使用RAM ,因此存在出现内存不足 (OOM) 错误的风险。
$trim、$ltrim 和 $rtrim 的 chars 长度限制
从MongoDB 8.3 开始,您提供给 chars 的字符串长度限制为 4096 个字符。有关详细信息,请参阅 $trim 限制。
分片
分片集群的 DDL 操作只能在mongos上运行
从MongoDB 8.3 开始,您只能在所有集群的 mongos 上运行DDL 操作和applyOps。从副本集过渡到分片集群时,这些操作可能暂时不可用。
findShardsOnConfigTimeoutMS Parameter
MongoDB 8.3 添加了 findShardsOnConfigTimeoutMS 参数,该参数为针对 config.shards命名空间的find 操作设置超时(以毫秒为单位)。有关详细信息,请参阅 findShardsOnConfigTimeoutMS。
config.csrs.索引 已删除
MongoDB 8.3 删除 config.csrs.indexes命名空间空间。
2dsphereIndexVersion
从MongoDB 8.3 开始,2dsphereIndexVersion 默认设立为版本 4。
如果需要将特征兼容性版本降级到 8.3 以下,必须首先删除 2dsphere 版本 4 索引。
源自 mongos 的查询的分片查询统计信息
从MongoDB 8.3 开始,启用 queryStats 后,分片服务器会将源自 mongos 的查询包含在其查询统计信息中。以前,从 mongos 转发到分片的大多数查询不会出现在分片级查询统计信息中,这会降低分片级诊断的完整性。
转换为分片集群
从MongoDB 8.3 开始,以前的分片的片集群副本集无法转换回副本集。
将分片集群转换为副本集时,会保留先前部署的分片元数据,包括分片身份document,以阻止其再次成为分片集群。如果您尝试将自管理转换回分片集群, MongoDB将返回错误。
要将此类副本集转换为分片的集群,联系技术支持。
转换为嵌入式配置分片
MongoDB 8.3 引入了 mongod
--replicaSetConfigShardMaintenanceMode 选项。
在上一个版本中,将副本集转换为具有嵌入式配置分片的分片集群要求您首先迁移到具有专用配置服务器副本集分片集群。
如果使用 --replicaSetConfigShardMaintenanceMode 和 --configsvr 选项重新启动副本集,则可以将主节点 (primary node in the replica set)节点直接转换为嵌入式配置分片。
有关更多信息,请参阅将副本集转换为嵌入式配置分片。
时间序列
细化CollectionShardKey格式
从MongoDB 8.3 开始,时间序列集合的 refineCollectionShardKey 仅接受使用集合的逻辑元和时间字段指定的分片键。MongoDB不再支持使用根本的存储桶格式指定键。
索引命名限制
从MongoDB 8.3 开始,创建名称为 "_id_" 的索引或在时间序列集合上指定 "_id_" 提示会返回错误。
timeField 命名限制
从MongoDB 8.3 开始,您无法创建以 $ 字符开头的 timeField。
日志记录
用于追踪查询内存使用情况的字段
从MongoDB 8.3 开始,您可以使用以下新字段来追踪查询内存使用情况:
字段 | 说明 |
|---|---|
| 当前查询操作使用的跟踪内存的字节数。 |
| 当前查询操作使用的跟踪内存的最大字节数。 |
这两个字段都出现在以下位置:
peakTrackedMemBytes字段还会出现在以下位置:
从 8.3 开始,使用 $queryStats 中的以下新指标来衡量 checkForInterrupt 的行为:
metrics.numInterruptChecksPerSecmetrics.overdueInterruptApproxMaxMillis
Mongos 查询结构字段
从MongoDB 8.3 开始,慢查询日志条目有一个可选的 originalQueryShapeHash 字段,其中包含源自 mongos 的以下操作的查询结构:
进行中的慢速查询日志
MongoDB 8.3 引入了进行中的慢速查询日志条目。与标准慢速查询日志相比,进行中慢速查询的日志消息包含的信息更少。如果查询的持续时间超过 slowOpInProgressThreshold,MongoDB最多记录日志一次查询。您可以使用 db.setProfilingLevel() 或新的 mongod
--defaultSlowInProgMS 命令行选项设立阈值。
解释输出
分片集群
从MongoDB 8.3 开始,如果对分片集群上不存在的数据库运行explain(),则执行阶段将到达流结束,并且该操作不会创建数据库。有关流结束执行统计信息的更多信息,请参阅 explain.executionStats.executionStages.isEOF。
安全性
SCRAM-SHA-1 和 FIPS 模式
从MongoDB8.3 开始,您无法在指定SCRAM-SHA-1 authenticationMechanisms或mongod --tlsFIPSMode 的同时为 指定mongos --tlsFIPSMode 。
如果您尝试在为 authenticationMechanisms 指定 SCRAM-SHA-1 的同时指定 --tlsFIPSMode,则服务器会引发错误并记录类似于以下内容的消息:
SCRAM-SHA-1 is not allowed in FIPS mode.
升级程序
要升级到 MongoDB 8.3,请参阅特定于您的 MongoDB 部署的升级说明:
如果您需要升级到 8.3 的指导, MongoDB专业服务可提供支持,帮助确保MongoDB应用程序在不中断的情况下平稳过渡。要学习;了解更多信息,请参阅MongoDB咨询。
立即下载
要下载 MongoDB 8.3,请访问 MongoDB 下载中心。
重要
次要版本可能不支持某些功能,包括Atlas实时迁移或 mongosync。如果您需要这些功能,请改用主要发布。
降级考虑因素
从MongoDB 8.3 开始,您可以将MongoDB版本降级到上一个次要版本或主要版本。
仅支持单版本降级
MongoDB仅支持相邻版本的单版本降级。您无法降级到发布当前发布落后多个版本的版本。
对于任何版本,无论是主要版本还是次要版本,都可以升级或降级到其相邻的邻居。示例,您可以从 8.3 降级到 8.2,或从 7.0升级到 8.0。
对于所有版本,无论是主要版本还是次要版本,您都可以降级到上一个主要版本。示例,从 8.3 到 8.0。
对于任何次要版本,您都可以升级到立即的下一个版本。示例,从 8.2 到 8.3。
向后不兼容的功能
MongoDB 8.3 包含与早期版本不兼容的功能。从 8.3 降级到早期发布需要删除使用这些功能的数据。
更多信息,请参阅向后不兼容的功能。