We invite you to try the mongodb library immediately, and report any issues to the NODE project.
v4.0.0
The MongoDB Node.js team is delighted to announce the major version release 4.0.0 of the MongoDB Node.js Driver!
Release Highlights
We finally did it! The major version release of the MongoDB driver is now generally available! This release represents over a year's worth of effort that couldn't have been done without stellar contributions from the community and our Node.js DBX team. We hope you give it a try and are able to upgrade smoothly! :tada:
The biggest news is our migration to Typescript :partying_face: offering first class support of type definitions in the driver itself.
Some cool new MongoDB 5.0 features now supported in the driver are:
Time series collections efficiently store sequences of measurements over a period of time. Compared to normal collections, storing time series data in time series collections improves query efficiency and reduces the disk usage for time series data and secondary indexes
Support for read concern level "snapshot" (non-speculative) for read commands outside of transactions, including on secondaries. The snapshot reads on secondaries feature allows users to perform analytics with snapshot isolation on dedicated secondaries, including long running snapshot reads.
Below are only the changes since our last beta release, for the full set of breaking changes look at the upgrade guide here and for the full set of new features, take a look here.
Hello dear reader, thank you for adopting version 4.x of the MongoDB Node.js driver, from the bottom of our developer hearts we thank you so much for taking the time to upgrade to our latest and greatest offering of a stunning database experience.
We hope you enjoy your upgrade experience and this guide gives you all the answers you are searching for.
If anything, and we mean anything, hinders your upgrade experience please let us know via JIRA.
We know breaking changes are hard but they are sometimes for the best.
Anyway, enjoy the guide, see you at the end!
Key Changes
Typescript
We've migrated the driver to Typescript!
Users can now harness the power of type hinting and intellisense in editors that support it to develop their MongoDB applications.
Even pure JavaScript projects can benefit from the type definitions with the right linting setup.
Along with the type hinting there's consistent and helpful docs formatting that editors should be able to display while developing.
Recently we migrated our BSON library to TypeScript as well, this version of the driver pulls in that change.
Community Types users (@types/mongodb)
If you are a user of the community types (@types/mongodb) there will likely be compilation errors while adopting the types from our codebase.
Unfortunately we could not achieve a one to one match in types due to the details of writing the codebase in Typescript vs definitions for the user layer API along with the breaking changes of this major version. Please let us know if there's anything that is a blocker to upgrading on JIRA.
Node.js Version
We now require node 12.9 or greater for version 4 of the driver.
If that's outside your support matrix at this time, that's okay!
Bug fix support for our 3.x branch will not be ending until summer 2022, which has support going back as far as Node.js v4!
Cursor changes
Affected classes:
AbstractCursor
FindCursor
AggregationCursor
ChangeStreamCursor
This is the underlying cursor for ChangeStream
ListCollectionsCursor
Our Cursor implementation has been updated to clarify what is possible before and after execution of an operation. Take this example:
const cursor = collection.find({ a: 2.3 }).skip(1);
for await (const doc of cursor) {
console.log(doc);
fc.limit(1); // bad.
}
This version was pushed to npm by dariakp, a new releaser for mongodb since your current version.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in the `.dependabot/config.yml` file in this repo:
- Update frequency
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
Bumps mongodb from 3.3.3 to 4.0.1.
Release notes
Sourced from mongodb's releases.
... (truncated)
Changelog
Sourced from mongodb's changelog.
... (truncated)
Commits
ac52605
chore(release): 4.0.19e48bbd
fix(NODE-3199): unable to bundle driver due to uncaught require (#2904)d270610
test(NODE-3412): sync spec tests for serverless testing (#2911)51ea86d
fix(NODE-3417): allow callingdb()
before MongoClient is connected (#2889)7aa3008
fix(NODE-3393): snapshot time not applied if distinct executed first (#2908)b67af3c
test(NODE-3011): lb support spec test changes (#2906)fa4352d
test: new test runner changes from lb support (#2901)eadeb01
feat(NODE-3419): define MongoRuntimeError children (#2893)ead7920
chore(release): 4.0.017cc291
fix(NODE-3430): watch method types on MongoClient and Db (#2900)Maintainer changes
This version was pushed to npm by dariakp, a new releaser for mongodb since your current version.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in the `.dependabot/config.yml` file in this repo: - Update frequency - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)