Upgrade Driver Versions
On this page
Overview
On this page, you can learn how to upgrade your driver to a new version. This page also includes the changes you must make to your application to upgrade your driver without losing functionality, if applicable.
How to Upgrade
Before you upgrade, perform the following actions:
- Ensure the new driver version is compatible with the MongoDB Server version your application connects to and the version of Node.js that your application runs on. See the Compatibility page for this information. 
- Address any breaking changes between the version of the driver your application uses now and your planned upgrade version in the Breaking Changes section of this guide. To learn more about the MongoDB Server release compatibility changes, see the Server Release Compatibility Changes section. 
Tip
You can minimize the amount of changes that you must make to your application when upgrading driver versions by using the Stable API.
To upgrade your driver version, run the following command in your application's directory:
npm install mongodb@6.14 
To upgrade to a different version of the driver, replace the information after the
@ symbol with your preferred version number. For more information about the
npm install command, see the npm-install
npm documentation.
Breaking Changes
A breaking change is a modification in a convention or behavior in a specific version of the driver that may prevent your application from working as expected.
The breaking changes in this section are categorized by the major version releases that introduced them. When upgrading driver versions, address all the breaking changes between your current version and the planned upgrade version. For example, if you are upgrading the driver from v3.x to v5.x, address all breaking changes listed under v4.0 and v5.0.
Version 6.0 Breaking Changes
- Version 6.0 of the Node.js driver requires Node.js v16.20.1 or later. 
- The driver removes support for the - addUser()helper command. Use the createUser MongoDB Shell command instead.
- The driver removes support for the - collStatsoperation. Use the $collStats aggregation operator instead.
- The driver removes all the deprecated - ssl-prefixed options and the- tlsCertificateFileoption in the- MongoClientOptionstype. Create a- SecureContextobject or set the- tls-prefixed options in your- MongoClientOptionsinstance instead.
- The driver reads files set in the - tlsCAFileand- tlsCertificateKeyFileconnection options when you call the- MongoClient.connect()method, not when you create the- MongoClientinstance.
- The driver removes the - keepAliveand- keepAliveInitialDelayconnection options. The value of- keepAliveis permanently set to- trueand the value of- keepAliveInitialDelayis set to 300000 milliseconds (300 seconds).
- The - Db.command()method accepts only options that are not related to a specific command. To learn more about these options, see the Command Options section of the Run a Command guide.
- If you add - mongodb-client-encryptionas a dependency, the major version number must match that of the Node.js driver. For example, Node.js driver v6.x.x requires- mongodb-client-encryptionv6.x.x.
- Automatic Encryption methods are now in the Node.js driver. You must import these methods from the driver instead of from - mongodb-client-encryption.
- Removed the - ObjectIdconstructor that accepted a 12-character string.
- Modified - abortTransaction()and- commitTransaction()methods to return- nullinstead of the raw command results.
- Removed connection option helpers that accepted values other than - trueor- falseas booleans. You must provide either- trueor- falsevalues in the connection string or to the MongoClient constructor.
- Removed the - BinaryBSON type constructor that accepted a string.
- The - Binary.write()method no longer accepts a string to write to the binary BSON object.
- The ClientEncryption API returns promises instead of callbacks. 
- The - sockspackage, which enables SOCKS5 proxy support, is a peer-optional dependency. You must install the package to enable SOCKS5 in your application. To learn more, see Enable SOCKS5 Proxy Support.
- If you start a session on a client, then pass that session to a different client, the driver throws an error when you perform any operations in the session. 
- The - includeResultMetadataoption for compound operation methods is- falseby default. See the Built-in Methods section of the Compound Operations guide for more information.
- The - withSession()method returns the value that the provided function returns. In previous driver versions, this method returns- undefined. The- withTransaction()method returns the value that the callback returns. In previous driver versions, this method returns the server command response, which varies depending on the MongoDB Server version or type that the driver connects to. To learn more about transactions, see the Convenient Transaction API and Core API guides and the Transactions guide.
- Raised the optional - kerberosdependency minimum version to 2.0.1 and removed support for version 1.x.
- Raised the optional - zstddependency minimum version to 1.1.0.
Version 5.0 Breaking Changes
- The driver is no longer compatible with Node.js v12 or earlier. If you want to use this version of the driver, you must use Node.js v14.20.1 or greater. 
- The driver removes support for callbacks in favor of a promise-based API. The following list provides some strategies for callback users to adopt this version: - Migrate to the promise-based API (recommended) 
- Use the promise-based API and - util.callbackify
- Add - mongodb-legacyto continue using callbacks
 - For more information about these strategies, see the v5.0 changelog. 
- The driver removes support for the - Collection.insert(),- Collection.update(), and- Collection.remove()helper methods. The following list provides instructions on how to replace the functionality of the removed methods:- Migrate from - Collection.insert()to- insertOne()or- insertMany()
- Migrate from - Collection.update()to- updateOne()or- updateMany()
- Migrate from - Collection.remove()to- deleteOne()or- deleteMany()
 
- The driver no longer includes AWS SDK modules by default. 
- The driver no longer automatically imports the - bson-extpackage.
- The driver removes support for custom - Promiselibraries. The driver no longer supports the- promiseLibraryoption of- MongoClientand the- Promise.setexport that allows specifying a custom- Promiselibrary.
- The driver removes support for the - Collection.mapReduce()helper.
- The - BulkWriteResulttype no longer has the publicly enumerable- resultproperty.
- The following types, options, and methods have been removed: - BulkResult.lastOp()method
- opTimeproperty of- BulkResult
- BulkWriteOptions.keepGoingoption
- WriteConcernError.err()method
- AddUserOptions.digestPasswordoption
- Kerberos - gssapiCanonicalizeHostNameoption
- slaveOkoptions and method removed in favor of- secondaryOk
- ObjectIDtype removed in favor of- ObjectId
- AsyncIteratorinterface removed in favor of- AsyncGenerator
 
Version 4.0 Breaking Changes
- The driver is no longer compatible with Node.js v12.8 or earlier. If you want to use this version of the driver, you must use Node.js v12.9 or greater. 
- Cursortypes no longer extend- Readabledirectly.
- You cannot use a - ChangeStreaminstance as an iterator after using it as an- EventEmitter. You also cannot do the reverse—using an- EventEmitterinstance as an iterator after using it as a- ChangeStream.
- The following methods no longer accept a callback parameter: - Collection.find()
- Collection.aggregate()
- Db.aggregate()
 
- The default value of the - maxPoolSizeconnection option is now- 100.
- The driver no longer supports the - gssapiServiceNameKerberos option. Use- authMechanismProperties.SERVICE_NAMEinstead.
- The driver no longer accepts non-boolean types, such as - 0or- 1, for boolean options.
- The - db.collectiontype no longer accepts a callback.
- The - Dbtype is no longer an- EventEmitter. You can listen to any events directly from the- MongoClientinstance.
- The driver removes support for the - Collection.group()helper.
- The driver no longer includes the deprecated - GridStoreAPI.
For more information about these changes, see the v4.0 changelog.
Server Release Compatibility Changes
A server release compatibility change is a modification to the driver that discontinues support for a set of MongoDB Server versions.
The driver discontinues support for a MongoDB Server version after it reaches end-of-life (EOL).
To learn more about the MongoDB support for EOL products, see the Legacy Support Policy.
Version 4.2 Server Release Support Changes
- The v4.2 driver drops support for MongoDB Server v3.4 and earlier. To use the v4.2 driver, your MongoDB Server must be v3.6 or later. To learn how to upgrade your MongoDB Server deployment, see Release Notes in the MongoDB Server manual.