chore(main): release 6.5.0 [skip-ci] #4013
Merged
+25
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🌱 A new release!
6.5.0 (2024-03-11)
The MongoDB Node.js team is pleased to announce version 6.5.0 of the
mongodb
package!Release Notes
Bulk Write Operations Generate Ids using
pkFactory
When performing inserts, the driver automatically generates
_id
s for each document if there is no_id
present. By default, the driver generatesObjectId
s. An option,pkFactory
, can be used to configure the driver to generate_id
s that are not object ids.For a long time, only
Collection.insert
andCollection.insertMany
actually used thepkFactory
, if configured. Notably,Collection.bulkWrite()
,Collection.initializeOrderedBulkOp()
andCollection.initializeOrderedBulkOp()
always generatedObjectId
s, regardless of what was configured on collection.The driver always generates
_id
s for inserted documents using thepkFactory
.Caution
If you are using a
pkFactory
and performing bulk writes, you may have inserted data into your database that does not have_id
s generated by thepkFactory
.Fixed applying read preference to commands depending on topology
When connecting to a secondary in a replica set with a direct connection, if a read operation is performed, the driver attaches a read preference of
primaryPreferred
to the command.Fixed memory leak in Connection layer
The Connection class has recently been refactored to operate on our socket operations using promises. An oversight how we made async network operations interruptible made new promises for every operation. We've simplified the approach and corrected the leak.
Query SRV and TXT records in parallel
When connecting using a convenient SRV connection string (
mongodb+srv://
) hostnames are obtained from an SRV dns lookup and some configuration options are obtained from a TXT dns query. Those DNS operations are now performed in parallel to reduce first-time connection latency.Container and Kubernetes Awareness
The Node.js driver now keeps track of container metadata in the
client.env.container
field of the handshake document.If space allows, the following metadata will be included in
client.env.container
:Note: If neither Kubernetes nor Docker is present,
client.env
will not have thecontainer
property.Add property
errorResponse
to MongoServerErrorThe MongoServer error maps keys from the error document returned by the server on to itself. There are some use cases where the original error document is desirable to obtain in isolation. So now, the
mongoServerError.errorResponse
property stores a reference to the error document returned by the server.Deprecated unused
CloseOptions
interfaceThe
CloseOptions
interface was unintentionally made public and was only intended for use in the driver's internals. Due to recent refactoring (NODE-5915), this interface is no longer used in the driver. Since it was marked public, out of an abundance of caution we will not be removing it outside of a major version, but we have deprecated it and will be removing it in the next major version.Features
Bug Fixes
CERT_HAS_EXPIRED
(#4014) (057c223)Connection
class (#4022) (69de253)Performance Improvements
Documentation
We invite you to try the
mongodb
library immediately, and report any issues to the NODE project.