Docs 菜单
Docs 主页
/ / /
Node.js

升级驱动程序版本

在此页面上

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

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

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

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

  • 在本指南的破坏性变更 (breaking change) 部分中,解决应用程序当前使用的驱动程序版本与计划升级版本之间发生的任何破坏性变更 (breaking change)。要了解有关 MongoDB 服务器版本兼容性变更的更多信息,请参阅服务器版本兼容性变更部分。

提示

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

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

npm install mongodb@5.8

要升级到不同版本的驱动程序,请将 @符号后面的信息替换为您的首选版本号。 有关npm install 命令的详细信息,请参阅 npm-install npm 文档。

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

本部分中的破坏性变更按引入它们的主要版本进行分类。升级驱动程序版本时,请解决当前版本和计划升级版本之间的所有破坏性变更。例如,如果要将驱动程序从 v3.x 升级到 v5.x,请解决 v4.0和 v5.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 手册中的发行说明

后退

兼容性