本页介绍 MongoDB 8.2中引入的更改和新功能。
警告
MongoDB 8.0 及更高版本与内核 6.19 不兼容
由于新内核发布与当前提供的 TCMalloc 版本不兼容,使用Linux内核版本 6.19运行MongoDB 8.0 或更高版本可能会导致MongoDB在初创企业崩溃。这适用于所有MongoDB包,包括从MongoDB网站获取的包,或从包管理器或Docker获取的包。
一旦 TCMalloc 的补丁版本可用, MongoDB将升级以使用它,并且此兼容性问题将得到解决。
MongoDB 8.2 是一个次要版本,这意味着MongoDB Atlas和本地部署部署均支持它。MongoDB 8.2 在主要版本发布周期内引入了增量改进。MongoDB 8.2 还包括MongoDB 8.1 中引入的更改。本页介绍次要发布和MongoDB 8.2 中引入的更改。
要详细学习;了解主要版本和次要版本之间的差异,请参阅 MongoDB版本控制。
重要
mongosync MongoDB 8.3 不支持。
重要
MongoDB 8.2 包括针对 CVE-2025-13643、CVE-2025-13644 和 CVE-2026-1847 的修复。
有关MongoDB安全更新的最新信息,请参阅MongoDB安全公告。
补丁版本
8.2.9 - 5 月12 、 2026
重要
MongoDB 8.2.9包含针对以下问题的修复:
有关MongoDB安全更新的最新信息,请参阅MongoDB安全公告。
修复的问题:
SERVER-120668
$trim禁止 掩码字符串过大SERVER-121610 确保缓存的
emit()调用为空操作SERVER-121895 改进对验证错误的编辑
SERVER-122032
replaceEncryptedFieldsInFilter使用位置投影调用 会导致释放后使用SERVER-122449 改进
$bitSet匹配表达式SERVER-126021 将具有重复字段名称的数据插入时间序列集合时出现未定义行为
8.2.7 - 4 月16 、 2026
重要
SERVER-103990 从嵌入式配置服务器过渡到专用配置服务器时跳过范围删除
服务器-112273 修复因使用
killOp()终止 OplogWriter 操作而导致的崩溃SERVER-116284 确保 MultiStatementTransactionRequestsSender 在处理结果之前将
commitTransaction发送到所有分片服务器-119413 修复
configTerm以在需要int32时处理int64值服务器-119964 集合目录竞争条件在回滚后关闭oplog可见性线程
WT-16375 调用
cursor->close()时关闭故障点
8.2.6 - 2026 年 3 月 18 日
重要
SERVER-106239:在分片上运行分片的管道并运行分片聚合时,调查ACID 事务参与者状态不匹配的情况
服务器-110832:OplogWriter 不应通过回滚来保持会话
SERVER-111007:查找混合模式数据时,验证应区分根本原因
服务器-113319:当表达式根是重命名的字段路径(Field Path)表达式时,经过重命名的字段的
$match下推不正确SERVER-115962:当负载最多的分片已在其区域内实现均衡时,负载均衡器不会取得进展
SERVER-117623:分片多文档事务可以观察并发
renameCollection操作的部分影响服务器-118428:
mongocryptd拒绝大消息SERVER-119317:改进 MD5 哈希状态的对象生命周期
服务器-119319:修复 ExpressionContext 释放后使用错误
WT-15739:修复协调泄漏溢出页面
8.2.5 - 2 月10 、 2026
SERVER-118711 - 无法使用非系统用户创建时间序列 2dsphere索引
8.2.4 - 27 1 月, 2026
重要
MongoDB 8.2.4包含修复
有关MongoDB安全更新的最新信息,请参阅MongoDB安全公告。
修复的问题:
服务器-112952 — 收紧配置文件命令身份验证检查
SERVER-113685 — 复合通配符索引查询出现段错误
SERVER-114126 — 减少内存使用量并为布尔简化器添加新的护栏
SERVER-114695 — 更新待处理连接的默认值
服务器-114838 — 锁经理容易受到对抗性 DDOS 攻击
服务器-115296 — 编辑错误消息中的 ResourceId 原始值
服务器-116206 — 更好地处理消息压缩器的异常
SERVER-116210 — 调整入口请求的最大缓冲区大小
SERVER-116211 — 网络缓冲区分配的内存大小
8.2.3- 2025 年 12 月 19 日
重要
MongoDB 8.2.3包含CVE-2025-14847 的修复。
有关MongoDB安全更新的最新信息,请参阅MongoDB安全公告。
修复的问题:
SERVER-115508:为未压缩消息创建最小大小的缓冲区
8.2.2 - 2025 年 11月 19 日
重要
MongoDB 8.2.2包括针对 CVE-2025-12893 和 CVE-2025-14345 的修复。
有关MongoDB安全更新的最新信息,请参阅MongoDB安全公告。
修复的问题:
SERVER-103774:禁止使用复合通配符索引作为分片键索引
SERVER-105047:对分片集合使用
$or和$ne的查询可能包含孤立文档SERVER-110423:
$group可以对稀疏索引使用去重扫描,从而排除具有null或missing值的结果服务器-110916:解决
targetShardsAndAddMergeCursors()中的移动后使用问题SERVER-111486:如果有替代索引可用,
$group仍可对 sparse index 使用非重复扫描SERVER-112467:跟踪并报告待处理的代理连接数
SERVER-112520:将文档插入现有时间序列存储桶时无法写入地理索引
8.2.1 - 2025 年 10 月 3 日
重要
MongoDB 8.2.1包括对CVE-2025-13507的修复。
有关MongoDB安全更新的最新信息,请参阅MongoDB安全公告。
修复的问题:
SERVER-94681:将采样移至oplog上限维护者线程
SERVER-106469:在最新构建的Windows 上启动 mongocryptd 失败。
SERVER-108565:改进对时间序列集合超大写入的处理。
SERVER-109626:调整在变更流中发出其他字段的行为
SERVER-110250:删除溢出 WT ident 时使用现有会话
WT-15225:修复新创建的表和删除() EBUSY 问题
性能改进
MongoDB 8.2 引入了相对于MongoDB 8.1 的性能改进,包括但不限于:
更快的初始同步。
更快的时间序列批量插入。
降低查询多重规划成本。
注意
性能提升的幅度可能会有所不同,具体取决于工作负载和数据库实例的配置。
索引生成
地理空间索引生成
从MongoDB 8.2 开始,如果文档同时包含GeoJSON和旧版数字坐标字段,地理空间索引生成会优先考虑GeoJSON坐标。
如果您的文档包含位于GeoJSON坐标之前的旧版数字坐标值,并且现有索引依赖于该行为,则您可能需要重建地理空间索引。
如果您的文档包含优先于GeoJSON坐标的旧版数字坐标值,并且现有索引依赖于该行为,则此更改可能要求您重建地理空间索引。查看地理空间查询以确认它们返回预期结果。
分片
TerminateSecondaryReadsOnOrphanCleanup 参数
MongoDB8.2 增加了 参数,该参数控制从从节点(secondary nodeterminateSecondaryReadsOnOrphanCleanup from replica set)上长时间运行的读取操作是否在数据块迁移后删除孤立文档之前自动终止。
默认下,此参数设立为 true。如果在迁移数据块迁移之前从从节点(secondary node from replica set)节点开始读取操作,MongoDB会在删除孤立文档之前自动终止该操作。在 8.2 之前的MongoDB版本中,这些操作在删除孤立文档后会继续执行,并且可能会默默地错过文档而不返回错误。
为了支持这一新行为,orphanCleanupDelaySecs 的默认值现在为 3600(之前为 900)。
一般性变更
初始同步期间构建索引
从MongoDB8.2 (以及8.0.13 、7.0.26 )开始,初始同步期间的索引构建默认使用 10% 的可用RAM 。您可以通过 参数指定供MongoDB使用的不同内存百分比。initialSyncIndexBuildMemoryPercentage
默认下,可用内存量必须介于 200 MB 到 16 GB之间(含)。您可以使用以下参数来指定不同的内存使用最小和最大阈值:
查询统计信息
从MongoDB 8.2 开始,$queryStats 输出包含有关拖欠 票证 的以下指标:
metrics.delinquentAcquisitionsmetrics.totalAcquisitionDelinquencyMillismetrics.maxAcquisitionDelinquencyMillis
当获取执行票证花费的时间过长时, MongoDB会将其视为拖欠。
WiredTiger缓存大小配置(百分比)
从MongoDB 8.2 开始,您可以使用基于百分比的新选项配置WiredTiger内部缓存大小。除了现有的--wiredTigerCacheSizeGB和storage.wiredTiger.engineConfig.cacheSizeGB基于 GB 的设置之外,您现在还可以使用--wiredTigerCacheSizePct和storage.wiredTiger.engineConfig.cacheSizePct选项将缓存大小指定为可用内存的百分比。
新的不一致类型:范围删除、缺少分片键索引
从MongoDB 8.2 开始,实施了新的不一致类型 RangeDeletionMissingShardKeyIndex。不一致类型表示存在一个分片集合,该集合没有与集合分片键兼容的索引,并且至少有一个剩余范围删除任务需要完成。
新聚合表达式
从MongoDB 8.2 开始,您可以使用 $currentDate 和 aggregate() 来返回服务器上的当前时间。
新建 $currentOp 字段
$currentOp聚合阶段现在包括versionContext字段,该字段提供有关操作的特征兼容性版本 (FCV)的信息。
serverStatus 输出变更
serverStatus 在其输出中包含以下新字段:
解释磁盘溢出阶段的输出
从MongoDB 8.2 开始,溢出到磁盘的阶段的解释结果现在包含一致字段名称下的标准化指标。此更新提供了一种更统一的方法来追踪内存密集型操作的磁盘使用情况。
新字段包括:
验证输出中的修复模式字段
从MongoDB 8.2 开始,validate 命令和 db.collection.validate() 辅助方法返回一个新的 repairMode字段,指示 validate 命令在检测到时尝试修复的数据不一致类型。
支持zstd快速压缩
从MongoDB 8.2 开始,storage.wiredTiger.engineConfig.zstdCompressionLevel 设置支持负值以进行快速zstd压缩。负值可提供更快的压缩和解压缩速度,但费用压缩率。新的支持范围是 -7 到 22。
有针对性的镜像读
从MongoDB 8.2 开始,您可以通过标记读镜像节点来有选择地将读操作镜像到需要缓存预热的特定服务器。与一般镜像读不同,定向读镜像允许您以隐藏节点为目标,并从主节点 (primary node in the replica set)和从节点(secondary node from replica set)进行镜像。
您可以使用targetedMirroring mirrorReads参数中的 字段配置定向镜像读。
限制入口连接建立的速率
从MongoDB 8.2 开始,您可以启用入口连接启用速率限制,以在过载期间节省 CPU 资源。启用后,您可以看到传入连接的速率何时超过指定的连接建立速率,并配置参数以指定MongoDB 部署如何处理多余的连接。
您可以使用以下新字段配置速率限制:
$trim、$ltrim 和 $rtrim 的 chars 长度限制
从MongoDB8.2.8 开始,您提供给chars 的字符串长度限制为4096 个字符。有关详细信息,请参阅 $trim 限制。
安全性
Queryable Encryption前缀、后缀和子字符串查询公共预览版
警告
前缀、后缀和子字符串查询处于公共预览状态
Queryable Encryption前缀、后缀和子字符串查询在MongoDB 8.2 的公共预览版中可用。请勿在生产环境中启用这些查询类型。公共预览功能将与 GA功能不兼容,您必须删除任何启用这些查询的集合。
MongoDB 8.2 允许您启用了可Queryable Encryption的集合中的加密字符串字段启用前缀、后缀和子字符串查询。 有关详细信息,请参阅启用子字符串查询和支持的聚合表达式。
要将公共预览版前缀、后缀或子字符串查询与 mongosh 一起使用,您必须单独下载 自动加密共享库 8.2 或更高版本,然后使用 --cryptSharedLibPath 选项指定 mongosh 的库路径。
已知问题
本部分介绍MongoDB 8.2中的已知问题及其解决状态。
版本中 | 问题 | 状态 |
|---|---|---|
8.2.4, 8.2.5 | 服务器-118428:对 To avoid this bug, skip these versions when you upgrade mongocryptd or
use the crypt_shared library. | 未解决。 |
8.2.0 | SERVER-106469:使用 You can avoid the .NET/C# Driver mongocryptd issue in the following ways:
| 我们的目标是在MongoDB 8.2.1 中修复此问题。 |
8.2.0 | SERVER-109626:v8.2.0引入了一些变更流性能回归。与 v8 相比,依赖变更流进行实时数据处理的应用程序可能会出现高达 15% 的性能下降。0 | 已在MongoDB 8.2.1 中修复。升级到 8.2.1恢复 8.2 之前的变更流 |
8.2.0 | SERVER-110250:如果主动溢出查询的数量超过 | 我们的目标是在MongoDB 8.2.1 中修复此问题。 |
MongoDB Server参数
从MongoDB 8.2 开始,提供以下服务器参数:
MongoDB 8.1 中引入的更改
以下部分介绍MongoDB 8.1 中引入的更改和新功能。
性能改进
MongoDB 8.1 引入了相对于MongoDB 8.0 的性能改进,包括但不限于:
将时间序列批量插入的吞吐量提高高达 195%。
匹配过滤查询的吞吐量提高高达 40%。
使用数组查询文档的吞吐量提高高达 20%。
缓存内读取工作负载的吞吐量提高高达 10%。
CPU 利用率最多降低 5%。
注意
性能提升的幅度可能会有所不同,具体取决于工作负载和数据库实例的配置。
为查询设置添加注释
从MongoDB 8.1(和 8.0.4)开始,您可以使用 setQuerySettings 为查询设置添加注释。示例,添加注释,说明添加查询设置的原因。
聚合累加器
从MongoDB 8.1 开始,提供以下聚合累加器:
聚合阶段
从MongoDB 8.1 开始,提供以下聚合阶段:
审核日志改进
从MongoDB 8.1 开始,如果客户端应用程序通过负载负载均衡器连接到 mongos,则源客户端计算机和负载负载均衡器IP地址和端口将包含在Atlas 审核日志中。您可以使用该日志将Atlas 审核事件与源客户端计算机进行匹配。
有关详细信息,请参阅 OCSF 模式审核消息 和 Mongo模式审核消息。
connectionStatus 连接 UUID
从MongoDB 8.1 开始,您可以通过connectionStatus.authInfo.UUID访问权限当前连接客户端的 UUID。
磁盘空间
从MongoDB 8.1(和 8.0.5)开始,如果磁盘空间运行, MongoDB会使溢出到磁盘的查询失败。
$geoNear 改进
从MongoDB 8.1 开始,一些之前失败且带有隐藏 2d 或 2dsphere 索引的 $geoNear 查询现在将成功。在以前的版本中,某些包含隐藏索引的 $geoNear 查询由于混淆要使用哪个索引不必要地失败并显示 IndexNotFound 错误。
提高操作持续时间指标的准确性
从MongoDB 8.1 开始,慢查询日志中报告的 durationMillis 指标会考虑处理授权和解析命令所花费的时间。因此,durationMillis 更能反映完整命令的持续时间。
不一致类型
从MongoDB 8.1 开始,提供以下不一致类型:
$lookup 支持加密集合
从MongoDB 8.1 开始,您可以在 $lookup 阶段引用多个加密集合。
要了解详情,请参阅:
$merge 缺失字段
从MongoDB 8.1 开始,如果 $merge 聚合阶段的支持索引不是稀疏索引,则为 on 选项指定的字段可能会缺失或包含 null 值。
查询统计信息
从MongoDB 8.1 开始,系统会收集并报告 count 和 distinct 命令的查询统计信息。有关详细信息,请参阅 count 命令查询结构 和 distinct 命令查询结构。
MongoDB Server参数
从MongoDB 8.1 开始,提供以下服务器参数:
serverStatus 衡量标准
从MongoDB8.1 (以及8.0.4 、 、.7.0.14 6.020)开始, 命令输出的indexStats serverStatus部分会跟踪处于prepareUnique 状态的索引。
MongoDB 8.1添加了以下服务器状态指标:
maxTimestampEligibleForTruncateinchangeStreamPreImages.purgingJobmetrics.abortExpiredTransactions.successfulKills(在 8.0.13 中也可用)metrics.abortExpiredTransactions.timedOutKills(在 8.0.13 中也可用)
磁盘溢出的慢查询指标
从MongoDB 8.1 开始,如果查询执行将临时文件写入磁盘,则慢速查询的日志消息将包含新指标。这些指标以导致查询超过内存限制的查询执行阶段为前缀。示例,sortSpills 表示查询执行的排序阶段将临时文件写入磁盘的次数。
衡量标准 | 说明 |
|---|---|
| 相应查询执行阶段将临时文件写入磁盘的次数 |
| 将临时文件写入磁盘所释放的内存大小(以字节为单位) |
| 用于临时文件的磁盘空间大小(以字节为单位) |
| 写入磁盘临时文件的记录数 |
有关将临时文件写入磁盘的更多信息,请参阅 allowDiskUse()。
Stable API
从 MongoDB 8.1 开始,renameCollection 命令和相应的 Shell 方法,db.collection.renameCollection(),包含在 Stable API V1 中。
支持解释结果中的搜索阶段
从 MongoDB 8.1 开始,解释结果 包括 $search、$searchMeta 和 $vectorSearch 阶段的执行统计信息。
要了解详情,请参阅:
支持针对视图的搜索索引命令
从MongoDB 8.1 开始,您可以运行createSearchIndexes、updateSearchIndex、dropSearchIndex 和 $listSearchIndexes,以在兼容的标准视图上创建、修改、删除和列出Atlas Search索引和Atlas Vector Search索引,这些索引仅包含以下阶段:
您可以在使用搜索索引上运行包含 $search 和 $searchMeta 阶段的聚合管道。您还可以在包含向量搜索索引的视图上运行包含$vectorSearch阶段的聚合管道。
验证命令索引规范输出
从MongoDB 8.1 开始,validate 命令在 validate.indexDetails 输出字段中包含索引规范。
处理无效文档的验证操作
从MongoDB 8.1 开始,您可以将模式的 validationAction 选项设立为 errorAndLog,这样MongoDB就会拒绝任何违反验证条件的插入或更新,并将错误记录到 mongod日志文件中。
有关详细信息,请参阅选择如何处理无效文档。
升级程序
重要
特征兼容性版本
要从 8.0 部署升级到 MongoDB 8.2,8.0 部署必须将 featureCompatibilityVersion 设置为 8.0。要检查版本:
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
要升级到 MongoDB 8.2,请参阅特定于您的 MongoDB 部署的升级说明:
如果您需要升级到 8.2 的指导, MongoDB专业服务可提供支持,帮助确保MongoDB应用程序在不中断的情况下平稳过渡。要学习;了解更多信息,请参阅MongoDB咨询。
立即下载
要下载 MongoDB 8.2,请访问 MongoDB 下载中心。
降级考虑因素
仅支持单版本降级
MongoDB 仅支持单版本降级。您无法降级到比当前版本落后多个版本的版本。
示例,您可以将 8.2 系列部署降级为 8.0 系列部署。但是,不支持将 8.0 系列部署进一步降级为 7.0 系列部署。
降级策略
MongoDB Community Edition不支持二进制降级。
您无法将部署的 FCV 降级到MongoDB的次要发布版本或从次要发布版本降级。
如果您升级或降级部署的 fCV,则在没有支持人员协助的情况下,您将无法降级 Enterprise 版部署的二进制版本。