MongoDB Node.js Driver
The official MongoDB driver for Node.js.
Upgrading to version 7? Take a look at our upgrade guide here!
Quick Links
| Site | Link |
|---|---|
| Documentation | www.mongodb.com/docs/drivers/node |
| API Docs | mongodb.github.io/node-mongodb-native |
npm package |
www.npmjs.com/package/mongodb |
| MongoDB | www.mongodb.com |
| MongoDB University | learn.mongodb.com |
| MongoDB Developer Center | www.mongodb.com/developer |
| Stack Overflow | stackoverflow.com |
| Source Code | github.com/mongodb/node-mongodb-native |
| Upgrade to v7 | etc/notes/CHANGES_7.0.0.md |
| Contributing | CONTRIBUTING.md |
| Changelog | HISTORY.md |
Release Integrity
Releases are created automatically and signed using the Node team's GPG key. All release packages provided as part of a GitHub release are signed. To verify the provided packages, download the key and import it using gpg:
gpg --import node-driver.asc
The GitHub release contains a detached signature file for the NPM package (named
mongodb-X.Y.Z.tgz.sig).
The following command returns the link npm package.
npm view [email protected] dist.tarball
Using the result of the above command, a curl command can return the official npm package for the release.
To verify the integrity of the downloaded package, run the following command:
gpg --verify mongodb-X.Y.Z.tgz.sig mongodb-X.Y.Z.tgz
[!Note] No GPG verification is done when using npm to install the package. The contents of the GitHub tarball and npm's tarball are identical.
Releases published to the npm registry also include a provenance attestation, which cryptographically links the package to its source repository and build workflow. To verify provenance:
npm audit signatures
The MongoDB Node.js driver follows semantic versioning for its releases.
Bugs / Feature Requests
Think you’ve found a bug? Want to see a new feature in node-mongodb-native? Please open a
case in our issue management tool, JIRA:
- Create an account and login jira.mongodb.org.
- Navigate to the NODE project jira.mongodb.org/browse/NODE.
- Click Create Issue - Please provide as much information as possible about the issue type and how to reproduce it.
Bug reports in JIRA for all driver projects (i.e. NODE, PYTHON, CSHARP, JAVA) and the Core Server (i.e. SERVER) project are public.
Support / Feedback
For issues with, questions about, or feedback for the Node.js driver, please look into our support channels. Please do not email any of the driver developers directly with issues or questions - you're more likely to get an answer on the MongoDB Community Forums.
Change Log
Change history can be found in HISTORY.md.
Compatibility
The driver currently supports 4.4+ servers.
For exhaustive server and runtime version compatibility matrices, please refer to the following links:
Component Support Matrix
The following table describes add-on component version compatibility for the Node.js driver. Only packages with versions in these supported ranges are stable when used in combination.
| Component | [email protected] | [email protected] | [email protected] | mongodb@=6.12 | [email protected] |
| ------------------------------------------------------------------------------------ | ------------------ | ------------------ | ------------------ | --------------- | ------------------ | ------------- |
| bson | ^1.0.0 | ^4.0.0 | ^5.0.0 | ^6.0.0 | ^6.0.0 | ^7.0.0 |
| bson-ext | ^1.0.0 || ^2.0.0 | ^4.0.0 | N/A | N/A | N/A | N/A |
| kerberos | ^1.0.0 | ^1.0.0 || ^2.0.0 | ^1.0.0 || ^2.0.0 | ^2.0.1 | ^2.0.1 | ^7.0.0 |
| mongodb-client-encryption | ^1.0.0 | ^1.0.0 || ^2.0.0 | ^2.3.0 | ^6.0.0 | ^6.0.0 | ^7.0.0 |
| mongodb-legacy | N/A | ^4.0.0 | ^5.0.0 | ^6.0.0 | ^6.0.0 | N/A |
| @mongodb-js/zstd | N/A | ^1.0.0 | ^1.0.0 | ^1.1.0 | ^1.1.0 || ^2.0.0 | ^7.0.0 |
Typescript Version
We recommend using the latest version of typescript, however we currently ensure the driver's public types compile against [email protected].
This is the lowest typescript version guaranteed to work with our driver: older versions may or may not work - use at your own risk.
Since typescript does not restrict breaking changes to major versions, we consider this support best effort.
If you run into any unexpected compiler failures against our supported TypeScript versions, please let us know by filing an issue on our JIRA.
Additionally, our Typescript types are compatible with the ECMAScript standard for our minimum supported Node version. Currently, our Typescript targets es2023.
Running in Custom Runtimes
We are working on removing Node.js as a dependency of the driver, so that in the future it will be possible to use the driver in non-Node environments. This work is currently in progress, and if you're curious, this is our first runtime adapter commit.
Some things to keep in mind if you are using a non-Node runtime:
- Users of Webpack/Vite may need to prevent
cryptopolyfill injection. - Auth mechanism
SCRAM-SHA-1has a hard dependency on Node.js. - Auth mechanism
SCRAM-SHA-1is not supported in FIPS mode.
Installation
The recommended way to get started using the Node.js driver is by using the npm (Node Package Manager) to install the dependency in your project.
After you've created your own project using npm init, you can run:
npm install mongodb
This will download the MongoDB driver and add a dependency entry in your package.json file.
If you are a Typescript user, y