Docs 菜单
Docs 主页
/ /

MongoDB 8.2发布说明

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

MongoDB 8.2 是一个次要版本,这意味着MongoDB Atlas和本地部署部署均支持它。MongoDB 8.2 在主要版本发布周期内引入了增量改进。MongoDB 8.2 还包括MongoDB 8.1 中引入的更改。本页介绍次要发布和MongoDB 8.2 中引入的更改。

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

重要

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

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

重要

mongosync MongoDB 8.2 不支持。

修复的问题:

  • SERVER-103774:禁止将复合通配符索引用作分片键索引

  • SERVER-105047:对分片集合使用 $or$ne 的查询可能包含孤立文档

  • SERVER-110423$group 可以对稀疏索引使用去重扫描,从而排除具有 nullmissing 值的结果

  • 服务器-110916:解决 targetShardsAndAddMergeCursors() 中的移动后使用问题

  • SERVER-112467:跟踪并报告待处理的代理连接数

  • SERVER-112520:将文档插入现有时间序列存储桶时无法写入地理索引

  • 在 8.2.2 版本中解决的所有 JIRA 问题

  • 8.2.2 变更日志

修复的问题:

MongoDB8.2 增加了 参数,该参数控制从从节点(secondary nodeterminateSecondaryReadsOnOrphanCleanup from replica set)上长时间运行的读取操作是否在数据块迁移后删除孤立文档之前自动终止。

默认下,此参数设立为 true。如果在迁移数据块迁移之前从从节点(secondary node from replica set)节点开始读取操作,MongoDB会在删除孤立文档之前自动终止该操作。在 8.2 之前的MongoDB版本中,这些操作在删除孤立文档后会继续执行,并且可能会默默地错过文档而不返回错误。

为了支持这一新行为,orphanCleanupDelaySecs 的默认值现在为 3600(之前为 900)。

从MongoDB 8.2 开始,初始同步期间的索引构建默认使用 10% 的可用RAM 。您可以通过 initialSyncIndexBuildMemoryPercentage 参数指定供MongoDB使用的不同内存百分比。

默认下,可用内存量必须介于 200 MB 到 16 GB之间(含)。您可以使用以下参数来指定不同的内存使用最小和最大阈值:

从MongoDB 8.2 开始,$queryStats 输出包含有关拖欠 票证 的以下指标:

  • metrics.delinquentAcquisitions

  • metrics.totalAcquisitionDelinquencyMillis

  • metrics.maxAcquisitionDelinquencyMillis

当获取执行票证花费的时间过长时, MongoDB会将其视为拖欠。

从MongoDB 8.2 开始,您可以使用基于百分比的新选项配置WiredTiger内部缓存大小。除了现有的--wiredTigerCacheSizeGBstorage.wiredTiger.engineConfig.cacheSizeGB基于 GB 的设置之外,您现在还可以使用--wiredTigerCacheSizePctstorage.wiredTiger.engineConfig.cacheSizePct选项将缓存大小指定为可用内存的百分比。

从 MonogDB 8.2 开始,实施了新的不一致类型 RangeDeletionMissingShardKeyIndex。不一致类型表示存在一个分片的集合,该集合没有与集合分片键兼容的索引,并且至少有一个剩余范围删除任务需要完成。

从MongoDB 8.2 开始,您可以使用 $currentDateaggregate() 来返回服务器上的当前时间。

$currentOp聚合阶段现在包括versionContext字段,该字段提供有关操作的特征兼容性版本 (FCV)的信息。

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

从MongoDB 8.2 开始,溢出到磁盘的阶段的解释结果现在包含一致字段名称下的标准化指标。此更新提供了一种更统一的方法来追踪内存密集型操作的磁盘使用情况。

新字段包括:

从MongoDB 8.2 开始,validate 命令和 db.collection.validate() 辅助方法返回一个新的 repairMode字段,指示 validate 命令在检测到时尝试修复的数据不一致类型。

从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 部署如何处理多余的连接。

您可以使用以下新字段配置速率限制:

警告

前缀、后缀和子字符串查询处于公共预览状态

Queryable Encryption前缀、后缀和子字符串查询在MongoDB 8.2 的公共预览版中可用。请勿在生产环境中启用这些查询类型。公共预览功能将与 GA功能不兼容,您必须删除任何启用这些查询的集合。

MongoDB 8.2 允许您启用了可Queryable Encryption的集合中的加密字符串字段启用前缀、后缀和子字符串查询。 有关详细信息,请参阅启用子字符串查询支持的聚合表达式

要将公共预览版前缀、后缀或子字符串查询与 mongosh 一起使用,您必须单独下载 自动加密共享库 8.2 或更高版本,然后使用 --cryptSharedLibPath 选项指定 mongosh 的库路径。

本部分介绍MongoDB 8.2中的已知问题及其解决状态。

版本中
问题
状态

8.2.0

SERVER-106469:使用 --logpath NUL 参数启动时,mongocryptdmongodmongos 进程不会在Windows上启动。第三方依赖项错误地禁止使用 NUL,导致此日志文件路径阻止 mongocryptd 启动。如果指定了 --logpath NUL, MongoDB驱动程序可能无法在Windows上成功启动 mongocryptd。MongoDB .NET/ C#驱动程序在其默认配置中使用 --logpath NUL,因此无法在Windows上启动。

You can avoid the .NET/C# Driver mongocryptd issue in the following ways:
  • 使用自动加密共享库而不是 mongocryptd

  • 启动 mongocryptd 时指定非 NUL日志文件路径。

我们的目标是在MongoDB 8.2.1 中修复此问题。

8.2.0

SERVER-109626:v8.2.0引入了一些变更流性能回归。与 v8 相比,依赖变更流进行实时数据处理的应用程序可能会出现高达 15% 的性能下降。0

我们的目标是在MongoDB 8.2.1 中修复此问题。

8.2.0

SERVER-110250:如果主动溢出查询的数量超过 1000,则运行需要磁盘溢出的内存密集型操作的用户可能会遇到服务器崩溃。要缓解此问题,请将 spillWiredTigerSessionMax setParameter 值提高到更高的值。

我们的目标是在MongoDB 8.2.1 中修复此问题。

从MongoDB 8.2 开始,提供以下服务器参数:

以下部分介绍MongoDB 8.1 中引入的更改和新功能。

从MongoDB 8.1(和 8.0.4)开始,您可以使用 setQuerySettings 为查询设置添加注释。示例,添加注释,说明添加查询设置的原因。

从MongoDB 8.1 开始,提供以下聚合累加器:

从MongoDB 8.1 开始,提供以下聚合阶段:

从MongoDB 8.1 开始,如果客户端应用程序通过负载负载均衡器连接到 mongodmongos实例,则原始客户端计算机和负载负载均衡器IP地址和端口将包含在Atlas 审核日志中。您可以使用该日志将Atlas 审核事件与源客户端计算机进行匹配。

有关详细信息,请参阅 OCSF 模式审核消息Mongo模式审核消息。

从MongoDB 8.1 开始,您可以通过connectionStatus.authInfo.UUID访问权限当前连接客户端的 UUID。

从MongoDB 8.1(和 8.0.5)开始,如果磁盘空间运行, MongoDB会使溢出到磁盘的查询失败。

从MongoDB 8.1 开始,一些之前失败且带有隐藏 2d 或 2dsphere 索引的 $geoNear 查询现在将成功。在以前的版本中,某些包含隐藏索引的 $geoNear 查询由于混淆要使用哪个索引不必要地失败并显示 IndexNotFound 错误。

从MongoDB 8.1 开始,慢查询日志中报告的 durationMillis 指标会考虑处理授权和解析命令所花费的时间。因此,durationMillis 更能反映完整命令的持续时间。

从MongoDB 8.1 开始,提供以下不一致类型:

从MongoDB 8.1 开始,您可以在 $lookup 阶段引用多个加密集合。

要了解详情,请参阅:

从MongoDB 8.1 开始,如果 $merge 聚合阶段的支持索引不是稀疏索引,则为 on 选项指定的字段可能会缺失或包含 null 值。

从MongoDB 8.1 开始,系统会收集并报告 countdistinct 命令的查询统计信息。有关详细信息,请参阅 count 命令查询结构distinct 命令查询结构。

从MongoDB 8.1 开始,提供以下服务器参数:

从MongoDB8.1 (以及8.0.4 和7.0.14 )开始, 命令输出的indexStats serverStatus部分会跟踪处于prepareUnique 状态的索引。

MongoDB 8.1添加了以下服务器状态指标:

从MongoDB 8.1 开始,如果查询执行将临时文件写入磁盘,则慢速查询的日志消息将包含新指标。这些指标以导致查询超过内存限制的查询执行阶段为前缀。示例,sortSpills 表示查询执行的排序阶段将临时文件写入磁盘的次数。

衡量标准
说明

<executionPart>Spills

相应查询执行阶段将临时文件写入磁盘的次数

<executionPart>SpilledBytes

将临时文件写入磁盘所释放的内存大小(以字节为单位)

<executionPart>SpilledDataStorageSize

用于临时文件的磁盘空间大小(以字节为单位)

<executionPart>SpilledRecords

写入磁盘临时文件的记录数

有关将临时文件写入磁盘的更多信息,请参阅 allowDiskUse()

从 MongoDB 8.1 开始,renameCollection 命令和相应的 Shell 方法,db.collection.renameCollection(),包含在 Stable API V1 中。

从 MongoDB 8.1 开始,解释结果 包括 $search$searchMeta$vectorSearch 阶段的执行统计信息。

要了解详情,请参阅:

从MongoDB 8.1 开始,您可以运行createSearchIndexesupdateSearchIndexdropSearchIndex$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 版部署的二进制版本。

后退

变更日志

在此页面上