Docs 菜单
Docs 主页
/ / /
Node.js 驱动程序

升级驱动程序版本

在此页面上

  • Overview
  • 如何升级
  • 重大更改
  • 版本 6.0破坏性变更
  • 版本 5.0 破坏性变更 (breaking change)
  • 版本 4.0 重大更改
  • 服务器版本兼容性更改
  • 4.2 版服务器版本支持更改

通过本页面,您可以了解如何将驱动程序升级到新版本。本页面还介绍您必须对应用程序进行的更改,以升级驱动程序而不丢失功能(如果适用)。

升级前,请执行以下操作:

  • 确保新的驾驶员版本与应用程序连接到的MongoDB Server版本以及应用程序运行所在的 Node.js 版本兼容。 有关此信息,请参阅兼容性页面。

  • 在本指南的重大更改部分,解决应用程序现在使用的驱动程序版本与计划升级版本之间发生的任何重大更改。 要了解有关MongoDB Server版本兼容性更改的更多信息,请参阅MongoDB Server版本兼容性更改部分。

提示

通过使用稳定的 API,您可以最大限度减少升级驱动程序版本时必须对应用程序进行的更改量。

若要升级驱动程序版本,请在应用程序目录中运行以下命令:

npm install mongodb@6.10

要升级到不同版本的驾驶员,请将 @ 符号后面的信息替换为您的首选版本号。有关npm install 命令的更多信息,请参阅 npm-install npm文档。

破坏性更改是对特定版本驱动程序中的约定或行为的修改,可能会阻止您的应用程序按预期工作。

本部分中的破坏性变更按引入它们的主要版本进行分类。升级驱动程序版本时,请解决当前版本和计划升级版本之间的所有破坏性变更。例如,如果要将驱动程序从 v3.x 升级到 v5.x,请解决 v4.0和 v5.0 下列出的所有破坏性变更。

  • Node.js 驱动程序 6.0 版本需要 Node.js v16.20.1 或更高版本。

  • 驱动程序删除了对 addUser() 辅助命令的支持。 请使用 createUser MongoDB Shell 命令。

  • 驱动程序不再支持 collStats 操作。请改用 $collStats 聚合操作符。

  • 驱动程序删除所有已弃用的以 ssl 为前缀的选项以及 MongoClientOptions 类型中的 tlsCertificateFile 选项。相反,请创建一个 SecureContext 对象或在 MongoClientOptions 实例中设置带 tls 前缀的选项。

  • 在您调用 MongoClient.connect() 方法(而不是创建 MongoClient 实例)时,该驱动程序读取 tlsCAFiletlsCertificateKeyFile 连接选项中设置的文件。

  • 驱动程序删除 keepAlivekeepAliveInitialDelay 连接选项。keepAlive 的值永久设置为 true,而 keepAliveInitialDelay 的值设置为 300000 毫秒(300 秒)。

  • Db.command() 方法只接受与特定命令无关的选项。如需了解有关这些选项的更多信息,请参阅“运行命令”指南中的“命令选项”部分。

  • 如果您添加 mongodb-client-encryption 作为依赖项,则主版本号必须与 Node.js 驱动程序的版本号匹配。例如,Node.js 驱动程序 v6.xx 需要 mongodb-client-encryption v6.xx。

  • 自动加密方法现在位于 Node.js 驱动程序中。您必须从驱动程序而不是从 mongodb-client-encryption 导入这些方法。

  • 删除了接受 12 个字符字符串的 ObjectId 构造函数。

  • 修改了 abortTransaction()commitTransaction() 方法,使其返回 null 而不是原始命令结果。

  • 删除了接受除 truefalse 之外的值作为布尔值的连接选项帮助程序。您必须在连接字符串中或向 MongoClient 构造函数提供 truefalse 值。

  • 删除了接受字符串的 Binary BSON 类型构造函数。

  • Binary.write() 方法不再接受要写入二进制 BSON 对象的字符串。

  • ClientEncryption API 返回 promise 而不是 callback。

  • 启用 SOCKS5 代理支持的socks软件包是对等可选的依赖项。您必须安装该软件包才能在应用程序中启用 SOCKS5。要了解更多信息,请参阅启用 SOCKS5 代理支持。

  • 如果在客户端上启动会话,然后将该会话传递给其他客户端,则当在会话中执行任何操作时,驱动程序都会引发错误。

  • 复合操作方法的 includeResultMetadata 选项默认为 false 。有关更多信息,请参阅“复合操作”指南的内置方法部分。

  • withSession() 方法返回提供的函数返回的值。在以前的驱动程序版本中,此方法返回 undefinedwithTransaction() 返回 回调 返回的值。在以前的驱动程序版本中,此方法返回服务器命令响应,该响应因驱动程序连接到的 MongoDB Server 版本或类型而有所不同。要了解有关事务的更多信息,请参阅执行事务用法示例和事务指南。

  • 将可选的 kerberos 依赖项最低版本提高到 2.0.1,并删除了对版本 1.x 的支持。

  • 将可选的 zstd 依赖最低版本提高到 1.1.0。

  • 该驱动程序不再与 Node.js v12 或更早版本兼容。如果您想使用此版本的驱动程序,必须使用 Node.js v14.20.1 或更高版本。

  • 该驱动程序删除对回调的支持,转而支持基于 Promise 的 API。以下列表为回调用户提供了一些策略以采用该版本:

    • 迁移至基于 Promise 的 API(推荐)

    • 使用基于 promise 的 API 和 util.callbackify

    • 添加 mongodb-legacy 以继续使用 callback

    有关这些策略的更多信息,请参阅 v5.0 变更日志 。

  • 驱动程序删除了对 Collection.insert()Collection.update()Collection.remove() 辅助方法的支持。 以下列表说明了如何替换已删除方法的功能:

    • Collection.insert() 迁移到 insertOne()insertMany()

    • Collection.update() 迁移到 updateOne()updateMany()

    • Collection.remove() 迁移到 deleteOne()deleteMany()

  • 默认情况下,驱动程序不再包含 AWS SDK 模块。

  • 该驱动程序不再自动导入 bson-ext 包。

  • 该驱动程序删除了对自定义 Promise 库的支持。该驱动程序不再支持 MongoClientpromiseLibrary 选项以及允许指定自定义 Promise 库的 Promise.set 导出。

  • 该驱动程序删除了对Collection.mapReduce()辅助程序的支持。

  • BulkWriteResult 类型不再具有可公开枚举的 result 属性。

  • 以下类型、选项和方法已被删除:

    • BulkResult.lastOp() 方法

    • opTime 属性,属于 BulkResult

    • BulkWriteOptions.keepGoing 选项

    • WriteConcernError.err() 方法

    • AddUserOptions.digestPassword 选项

    • Kerberos gssapiCanonicalizeHostName option

    • slaveOk 选项和方法已被删除,取而代之的是 secondaryOk

    • ObjectID 键入已删除,取而代之的是 ObjectId

    • AsyncIterator 界面已被删除,取而代之的是 AsyncGenerator

  • 该驱动程序不再与 Node.js v12.8 或更早版本兼容。如果您想使用此版本的驱动程序,必须使用 Node.js v12.9 或更高版本。

  • Cursor 类型不再直接扩展 Readable

  • 在将ChangeStream实例用作EventEmitter后,您无法将其用作迭代器。您也不能反过来操作 - 在将EventEmitter实例用作ChangeStream后,将其用作迭代器。

  • 以下方法不再接受 回调 参数:

    • Collection.find()

    • Collection.aggregate()

    • Db.aggregate()

  • maxPoolSize 连接选项的默认值现在为 100

  • 驱动程序不再支持 gssapiServiceName Kerberos 选项。请改用 authMechanismProperties.SERVICE_NAME

  • 对于布尔选项,驱动程序不再接受非布尔类型,例如 01

  • db.collection 类型不再接受 回调。

  • Db 类型不再是 EventEmitter。您可以监听直接来自 MongoClient 实例的任何事件。

  • 该驱动程序删除了对Collection.group()辅助程序的支持。

  • 驱动程序不再包含已弃用的 GridStore API。

有关这些更改的更多信息,请参阅 v4.0 变更日志。

服务器版本兼容性更改是对驱动程序的修改,停止对一组 MongoDB 服务器版本的支持。

该驱动程序在 MongoDB Server 版本的生命周期结束 (EOL) 后将停止支持。

要了解有关 MongoDB 支持 EOL 产品的更多信息,请参阅旧版支持政策

  • v4.2 驱动程序不再支持 MongoDB Server v3.4 及更早版本。如要使用 v4.2 驱动程序,您的 MongoDB Server 必须是 v3.6 或更新版本。如要了解如何升级 MongoDB Server 部署,请参阅 MongoDB Server 手册中的发行说明

后退

兼容性