文档菜单
文档首页
/ / /
Node.js 驱动

升级驱动版本

本页内容

  • 概述
  • 如何升级
  • 破坏性更改
  • 6.0 版本破坏性更改
  • 5.0 版本破坏性更改
  • 4.0 版本破坏性更改
  • 服务器发行版兼容性更改
  • 4.2 服务器发行版支持更改

在本页,您可以了解如何升级您的驱动程序到新版本。此页面还包括您必须对应用程序进行的更改,以在适用的情况下升级驱动程序而不丢失功能。

在升级之前,请执行以下操作

  • 确保新的驱动程序版本与您的应用程序连接的 MongoDB 服务器版本以及您的应用程序运行的 Node.js 版本兼容。请参阅兼容性页面以获取此信息。

  • 处理驱动程序当前版本与您计划升级的版本之间的任何破坏性更改破坏性更改部分。有关 MongoDB 服务器发布兼容性更改的更多信息,请参阅服务器发布兼容性更改部分。

提示

您可以通过使用稳定 API来最小化在升级驱动程序版本时必须对应用程序进行的更改数量。

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

npm install mongodb@6.11

要升级到驱动程序的不同版本,请替换@符号与您喜欢的版本号。有关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 选项。请在您的 MongoClientOptions 实例中创建一个 SecureContext 对象或设置以 tls 为前缀的选项。

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

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

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

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

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

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

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

  • 移除了接受除了 truefalse 以外的值作为布尔值的连接选项辅助函数。您必须在连接字符串或 MongoClient 构造函数中提供 truefalse 值。

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

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

  • ClientEncryption API 现在返回承诺而不是回调。

  • 启用 SOCKS5 代理支持的 socks 包是一个可选的依赖项。您必须安装该包才能在您的应用程序中启用 SOCKS5。有关更多信息,请参阅 启用 SOCKS5 代理支持。

  • 如果在客户端启动会话,然后将该会话传递给不同的客户端,当您在会话中执行任何操作时,驱动程序将抛出错误。

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

  • 方法 withSession() 返回提供函数返回的值。在之前的驱动程序版本中,此方法返回 undefined。方法 withTransaction() 返回回调返回的值。在之前的驱动程序版本中,此方法返回服务器命令响应,具体取决于驱动程序连接到的 MongoDB 服务器版本或类型。有关事务的更多信息,请参阅执行事务的使用示例和事务指南。

  • 将可选依赖项 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 以继续使用回调

    有关这些策略的更多信息,请参阅5.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() 方法

    • BulkResultopTime 属性

    • BulkWriteOptions.keepGoing 选项

    • WriteConcernError.err() 方法

    • AddUserOptions.digestPassword 选项

    • Kerberos gssapiCanonicalizeHostName 选项

    • 移除了 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

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

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

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

  • Db 类型不再是一个 EventEmitter。您可以直接从 MongoClient 实例监听任何事件。

  • 驱动程序移除了对 Collection.group() 辅助函数的支持。

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

有关这些更改的更多信息,请参阅 版本4.0的更改日志。

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

当 MongoDB 服务器版本达到生命周期的结束 (EOL) 时,驱动程序将停止支持该版本。

有关 EOL 产品的 MongoDB 支持的更多信息,请参阅 遗留支持策略。

  • v4.2 驱动器不再支持 MongoDB 服务器 v3.4 及更早版本。要使用 v4.2 驱动器,您的 MongoDB 服务器必须为 v3.6 或更高版本。有关如何升级 MongoDB 服务器部署的说明,请参阅 MongoDB 服务器手册中的发行说明

返回

兼容性