MongoDB 6.1中的兼容性变化

重要:

MongoDB 6.1是一个快速版本,仅支持MongoDB Atlas。MongoDB 6.1不支持在本地使用。有关更多信息,请参阅MongoDB版本控制。

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

本页面介绍了MongoDB 6.1中引入的可能影响与旧版本MongoDB兼容性的更改。

集合

以下对聚合的更改可能会影响与旧版本MongoDB的兼容性。

$add浮点四舍五入错误

从MongoDB 6.1开始,当$add表达式收到具有多个浮点值的输入列表时,MongoDB可能会返回与以前版本略有不同的结果。

$add表达式不再解释浮点四舍五入错误。因此,在大多数编程语言中,$add的行为就像加法一样。

例如,与旧版本相比,以下$add表达式在MongoDB 6.1上运行时返回不同的结果:

db.test.aggregate(
   [
     {
        $project: {
           sumOfValues: {
              $add: [ 0.1, 0.2, 0.3 ]
           }
         }
      }
   ]
)

MongoDB 6.1及更高版本的输出:

[
  {
    _id: ObjectId("6390f8085425651d8d0ef0a7"),
    sumOfValues: 0.6000000000000001
  }
]

MongoDB 6.0及更早版本的输出:

[
  {
    _id: ObjectId("6390f8085425651d8d0ef0a7"),
    sumOfValues: 0.6
  }
]

删除了选项

从MongoDB 6.1开始,日志记录始终处于启用状态。因此,MongoDB删除了storage.journal.enabled选项以及相应的--journal--nojournal命令行选项。

时间序列集合

不允许在存储桶集合命名空间上查看

您无法从时间序列存储桶集合命名空间(即以system.buckets为前缀的集合)创建视图。

如果您要从之前的版本升级到MongoDB 6.1,则必须删除在system.buckets集合上创建的所有视图。

服务器参数

从MongoDB 6.1开始,coordinateCommitReturnImmediatelyAfterPersistingDecision的默认值为false

没有自动切块

从MongoDB 6.1开始,不执行自动分割块。这是因为平衡了政策的改进。自动拆分命令仍然存在,但不执行操作。有关详细信息,请参阅平衡策略更改。

从MongoDB 6.1开始,以下自动拆分命令不执行操作:

分级指标变更

currentOp.opStatus从MongoDB 6.1中的分片指标中删除。有关替换currentOp.opStatus报告的新指标列表,请参阅发布说明。

原文:Compatibility Changes in MongoDB 6.1

Copyright © 上海锦木信息技术有限公司 all right reserved,powered by Gitbook文件修订时间: 2023-09-01 17:10:26

results matching ""

    No results matching ""