v3.6.4
MongoDB Driver v3.6.4
The MongoDB Node.js team is pleased to announce version 3.6.4 of the driver
Release Highlights
Explain Support
The full set of $explain verbosity settings are now supported:
queryPlanner
queryPlannerExtended
executionStats
allPlansExecution
In the following commands:
aggregate()
(MDB 3.0+)find()
(MDB 3.0+)remove()
(MDB 3.0+)update()
(MDB 3.0+)distinct()
(MDB 3.2+)findAndModify()
(MDB 3.2+)mapReduce()
(MDB 4.4+)
You can get a lot of insight into the performance of a query or optimization using these fine grained reports.
To learn more about how to use explain read here.
Direct Connection Issue Revert
We removed automatic direct connection for the unified topology in the 3.6.3 release of the driver. This change was preparatory for the 4.0 version of the driver, where we'll always perform automatic discovery. To avoid making this kind of change in a patch release, this version restores automatic direct connection when connecting to a single host using the unified topology without a specified replicaSet and without directConnection: false, in line with previous 3.6 releases.
NOTE: In the next major version the
unifiedTopology
is the only Topology and it is required to either specify areplicaSet
name or enabledirectConnection
in order to connect to single nodes in a replica set.
Support Azure and GCP keystores in FLE
There are no functional changes to the driver to support using Azure and GCP keystores but a new mongodb-client-encryption release (v1.2.0) can be found here which prominently features support for these key stores.
Documentation
- Reference: http://mongodb.github.io/node-mongodb-native/3.6
- API: http://mongodb.github.io/node-mongodb-native/3.6/api
- Changelog: https://github.com/mongodb/node-mongodb-native/blob/3.6/HISTORY.md
We invite you to try the driver immediately, and report any issues to the NODE project.
Thanks very much to all the community members who contributed to this release!
Release Notes
Bug
- [NODE-2355] - GridFSBucketWriteStream doesn't implement stream.Writable properly
- [NODE-2828] - noCursorTimeout does not seem to for find()
- [NODE-2874] - Setting connectionTimeoutMS to 0 will result in a disconnection every heartbeatFrequencyMS
- [NODE-2876] - Race condition when resetting server monitor
- [NODE-2916] - Legacy topology hangs with unlimited socket timeout
- [NODE-2945] - ignoreUndefined not works on findOneAndUpdate when { upsert: true }
- [NODE-2965] - MongoClient.readPreference returns "primary" ignoring readPref from connection string
- [NODE-2966] - Unified topology: server selection fails when trying to connect to a remote replica set with a member whose 'host' attribute resolves to 'localhost'
- [NODE-2977] - Query parameters with path in connection string not working on windows
- [NODE-2986] - MongoError: pool destroyed
Features
- [NODE-2762] - Comprehensive Support for Explain
- [NODE-2852] - Add explain support to non-cursor commands
- [NODE-2853] - Add explain support to cursor-based commands
Improvement
- [NODE-1726] - Deprecate Topology events in
Db
- [NODE-2825] - Support Azure and GCP keystores in FLE
- [NODE-2880] - Improve stack traces in the session leak checker
- [NODE-2895] - Update AggregateCursor "unwind" method to match the native driver
- [NODE-2995] - Sharing a MongoClient for metadata lookup can lead to deadlock in drivers using automatic encryption