升级驱动程序版本
Overview
通过本页面,您可以了解如何将驱动程序升级到新版本。本页面还介绍您必须对应用程序进行的更改,以升级驱动程序而不丢失功能(如果适用)。
如何升级
升级前,请执行以下操作:
确保新的驾驶员版本与应用程序连接到的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 下列出的所有破坏性变更。
版本 6.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
实例)时,该驱动程序读取tlsCAFile
和tlsCertificateKeyFile
连接选项中设置的文件。驱动程序删除
keepAlive
和keepAliveInitialDelay
连接选项。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
而不是原始命令结果。删除了接受除
true
或false
之外的值作为布尔值的连接选项帮助程序。您必须在连接字符串中或向 MongoClient 构造函数提供true
或false
值。删除了接受字符串的
Binary
BSON 类型构造函数。Binary.write()
方法不再接受要写入二进制 BSON 对象的字符串。ClientEncryption API 返回 promise 而不是 callback。
启用 SOCKS5 代理支持的
socks
软件包是对等可选的依赖项。您必须安装该软件包才能在应用程序中启用 SOCKS5。要了解更多信息,请参阅启用 SOCKS5 代理支持。如果在客户端上启动会话,然后将该会话传递给其他客户端,则当在会话中执行任何操作时,驱动程序都会引发错误。
复合操作方法的
includeResultMetadata
选项默认为false
。有关更多信息,请参阅“复合操作”指南的内置方法部分。withSession()
方法返回提供的函数返回的值。在以前的驱动程序版本中,此方法返回undefined
。withTransaction()
返回 回调 返回的值。在以前的驱动程序版本中,此方法返回服务器命令响应,该响应因驱动程序连接到的 MongoDB Server 版本或类型而有所不同。要了解有关事务的更多信息,请参阅执行事务用法示例和事务指南。将可选的
kerberos
依赖项最低版本提高到 2.0.1,并删除了对版本 1.x 的支持。将可选的
zstd
依赖最低版本提高到 1.1.0。
版本 5.0 破坏性变更 (breaking change)
该驱动程序不再与 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
库的支持。该驱动程序不再支持MongoClient
的promiseLibrary
选项以及允许指定自定义Promise
库的Promise.set
导出。该驱动程序删除了对
Collection.mapReduce()
辅助程序的支持。BulkWriteResult
类型不再具有可公开枚举的result
属性。以下类型、选项和方法已被删除:
BulkResult.lastOp()
方法opTime
属性,属于BulkResult
BulkWriteOptions.keepGoing
选项WriteConcernError.err()
方法AddUserOptions.digestPassword
选项Kerberos
gssapiCanonicalizeHostName
optionslaveOk
选项和方法已被删除,取而代之的是secondaryOk
ObjectID
键入已删除,取而代之的是ObjectId
AsyncIterator
界面已被删除,取而代之的是AsyncGenerator
版本 4.0 重大更改
该驱动程序不再与 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
。对于布尔选项,驱动程序不再接受非布尔类型,例如
0
或1
。db.collection
类型不再接受 回调。Db
类型不再是EventEmitter
。您可以监听直接来自MongoClient
实例的任何事件。该驱动程序删除了对
Collection.group()
辅助程序的支持。驱动程序不再包含已弃用的
GridStore
API。
有关这些更改的更多信息,请参阅 v4.0 变更日志。
服务器版本兼容性更改
服务器版本兼容性更改是对驱动程序的修改,停止对一组 MongoDB 服务器版本的支持。
该驱动程序在 MongoDB Server 版本的生命周期结束 (EOL) 后将停止支持。
要了解有关 MongoDB 支持 EOL 产品的更多信息,请参阅旧版支持政策。
4.2 版服务器版本支持更改
v4.2 驱动程序不再支持 MongoDB Server v3.4 及更早版本。如要使用 v4.2 驱动程序,您的 MongoDB Server 必须是 v3.6 或更新版本。如要了解如何升级 MongoDB Server 部署,请参阅 MongoDB Server 手册中的发行说明。