升级驱动程序版本
Overview
通过本页面,您可以了解如何将驱动程序升级到新版本。本页面还介绍您必须对应用程序进行的更改,以升级驱动程序而不丢失功能(如果适用)。
如何升级
升级前,请执行以下操作:
确保新的驾驶员版本与应用程序连接到的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 下列出的所有破坏性变更。
版本 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 手册中的发行说明。