Learn what's new in:
What's New in 5.11.1
Important
The Java driver 5.11.1 includes fixes for the following CVEs:
For the latest information about MongoDB security updates, see MongoDB Security Bulletins.
To learn more about this release, see the v5.11.1 Release Notes on GitHub.
What's New in 5.11
The 5.11 driver release includes the following changes, fixes, and features:
To learn more about this release, see the v5.11 Release Notes on GitHub.
What's New in 5.10
The 5.10 driver release includes the following changes, fixes, and features:
- Removes the stale
@Betaannotation from theSearchOptionsandVectorSearchOptionsclasses.
To learn more about this release, see the v5.10 Release Notes on GitHub.
What's New in 5.9.2
The 5.9.2 driver patch release includes the following changes:
- Fixes an issue where
ProxySettings.toString()included the SOCKS5 proxy username and password, which caused these credentials to appear in application logs. This issue affects driver versions 4.11.0 through 5.9.1. To learn more, see JAVA-6266 and CVE-2026-18710.
Warning
Suppress the Log Message Without Upgrading
If you use SOCKS5 proxy authentication and can't upgrade to v5.9.2, set the org.mongodb.driver.client logger to WARN or higher to suppress the client-construction message. We don't recommend this as a long-term measure, because it silences diagnostic information that is valuable for support and it doesn't remove credentials that are already written to existing logs.
To learn more about this release, see the v5.9.2 Release Notes on GitHub.
What's New in 5.9
The 5.9 driver release includes the following changes, fixes, and features:
Promotes Queryable Encryption (QE) prefix, suffix, and substring queries to general availability (GA). These query types are supported on MongoDB 9.0 and later. To learn more about QE, see In-Use Encryption.
Renames the explicit encryption API for QE string queries from
TexttoString. To perform a QE string query, make the following changes:Use the
StringOptionsclass instead ofTextOptions.Use the
EncryptOptions.stringOptions()method instead oftextOptions().Use the
EncryptOptions.getStringOptions()method instead ofgetTextOptions().Set the encryption algorithm to
"String".
Upgrades the
libmongocryptversion to 1.20.0.
To learn more about this release, see the v5.9 Release Notes on GitHub.
What's New in 5.8
The 5.8 driver release includes the following changes, fixes, and features:
Adds a typed builder API for vector search index definitions.
Adds support for the
$rerankaggregation stage. When connected to an Atlas cluster running MongoDB 8.3 or later, you can use theAggregates.rerank()builder method to create this stage.Adds support for the
vectorSearchoperator in a$searchpipeline stage. You can use theSearchOperator.vectorSearch()builder method to perform approximate nearest neighbor (ANN) vector search, orSearchOperator.vectorSearchExact()for exact nearest neighbor (ENN) search. The returnedVectorSearchOperatorsupports afilter()method to apply lexical prefilters.Adds support for configuring stored source on vector search index definitions by using the
storedSource()method in theVectorSearchIndexDefinitionclass.Adds support for requesting stored source fields in
$vectorSearchresults by using thereturnStoredSource()method in theVectorSearchOptionsclass.Optimizes
RawBsonDocumentencode and decode performance by eliminating intermediate allocations.Fixes an OSGi bundle resolution failure when Micrometer is not present.
Adds Javadoc documentation to the
MongodbObservationandMongodbObservationContextclasses.Upgrades the
libmongocryptversion to 1.18.1.
To learn more about this release, see the v5.8 Release Notes on GitHub.
What's New in 5.7.1
The 5.7.1 driver patch release includes the following changes:
To learn more about this release, see the v5.7.1 Release Notes on GitHub.
What's New in 5.7
The 5.7 driver release includes the following changes, fixes, and features:
What's New in 5.6
The 5.6 driver release includes the following changes, fixes, and features:
What's New in 5.5.1
The 5.5.1 driver patch release includes the following changes:
- Fixes an issue where OIDC reauthentication failed when triggered by an operation run in a session, including operations run in a transaction.
What's New in 5.5
Important
Removal of Support for MongoDB Server 4.0
Java driver v5.5 removes support for MongoDB Server 4.0. To learn more about compatible versions of the server, see Compatibility.
The 5.5 driver release includes the following changes, fixes, and features:
What's New in 5.4
The 5.4 driver release includes the following changes, fixes, and features:
What's New in 5.3
The 5.3 driver release includes the following changes, fixes, and features:
Important: The next minor release will drop support for MongoDB Server version 4.0 and raise the minimum supported version to 4.2. We recommend making changes to your application to accommodate breaking changes. See the Release Notes section in the Server manual to learn more about upgrading.
Adds the
BinaryVectorclass to implement BSON Binary Subtype 9 for vector storage and retrieval. This class provides more effective storage of values compared a list ofDoubleinstances. You can create the following vector types based on the type of elements your vector contains:Int8BinaryVector: Vector of 8-bit signed integersFloat32BinaryVector: Vector of floating-point numbersPackedBitBinaryVector: Binary quantized vector (In beta and subject to change before becoming generally available)
To learn more about this feature, see Vector Quantization in the Atlas documentation. To learn about how to use this type when using the MongoDB Vector Search feature, see the MongoDB Vector Search guide.
Removes explicit fairness from the connection pool implementation. This change might contribute to better throughput when you use a
MongoClientinstance in many application threads. However, this change might cause increased tail latency.Adds a sort option to the
updateOne()andreplaceOne()methods. This change also allows you to set a sort as an option when creatingReplaceOneModelandUpdateOneModelinstances. To learn more, see the Update Documents and Bulk Write Operations guides.
- Adds a client bulk write API that allows you to perform write operations on multiple databases and collections at once. To learn more about this feature, see the Client Bulk Write section of the Bulk Operations guide.
What's New in 5.2.1
The 5.2.1 driver patch release includes the following changes:
Fixes an issue that caused applications built with Quarkus to throw a
java.lang.UnsatisfiedLinkErrorwhen initializinglibmongocryptbindings.Fixes an issue that caused the
mongodb-driver-corepackage to error when deployed to an OSGi runtime. TheImport-Packageorg.mongodb:mongodb-driver-coremanifest attribute no longer requires thecom.oracle.svm.core.annotate.*packages.
What's New in 5.2
Important
Removal of Support for MongoDB Server 3.6
Java driver v5.2 removes support for MongoDB Server 3.6. To learn more about compatible versions of the server, see Compatibility.
The 5.2 driver release includes the following changes, fixes, and features:
A forward-slash (
/) character between the host names and client options in a connection URI is optional. The driver parses the following connection URI examples in the same way:// Connection URI with delimiting forward-slash String uri = "mongodb://example.com/?w=majority"; // Connection URI without delimiting forward-slash String uri = "mongodb://example.com?w=majority";
What's New in 5.1.3
The 5.1.3 driver patch release includes the following changes:
What's New in 5.1.2
The 5.1.2 driver patch release includes the following changes:
Fixes an issue that prevents the driver from encoding and decoding concrete classes that extend generic base classes, in cases that you specify the base class as the generic type of the
MongoCollectioninstance.Fixes an issue related to how domain names are validated when you use SOCKS5 proxy functionality, allowing you to use domain names with more than six characters in the top-level domain.
What's New in 5.1.1
The 5.1.1 driver patch release includes the following changes:
When using the
MONGODB-OIDCauthentication mechanism, you must not include comma characters in theauthMechanismPropertiesconnection string value. To learn more about this behavior, see the MONGODB-OIDC guide.Optimizes GridFS throughput by removing redundant byte array cloning. The
GridFSDownloadStreamandGridFSUploadStreamtypes use theBsonDocumenttype instead ofDocument.
What's New in 5.1
Warning
Deprecations in this release
To avoid breaking changes in future major releases of the driver, replace any application code that depends on deprecated program elements.
This section includes the following information:
Deprecations in 5.1
- Support for MongoDB Server v3.6 is deprecated and will be removed in the next driver version release. To learn how to upgrade your MongoDB Server deployment, see Release Notes in the MongoDB Server manual.
Improvements in 5.1
Internal testing of GraalVM native image technology. These tests involve building native applications by using the GraalVM native-image tool.
Enhanced support for the MONGODB-OIDC authentication mechanism. For more information about OIDC, see the OIDC (Workload Identity Federation) guide.
New Features in 5.1
- Introduces the
serverMonitoringModeconnection URI option. For more information about this option, see the Stable API guide.
What's New in 5.0
Warning
Breaking changes in this release
This driver version introduces breaking changes. For a list of these changes, see the Version 5.0 Breaking Changes section in the Upgrade guide.
Warning
Deprecations in this release
To avoid breaking changes in future major releases of the driver, replace any application code that depends on deprecated program elements.
This section includes the following information:
Deprecations in 5.0
- The
org.mongodb.scala.Observable.completeWithUnit()method is deprecated. This method is not useful anymore because the driver now exposesorg.mongodb.scala.Observable[Unit]instead oforg.mongodb.scala.Observable[Void]. This relates to a breaking change about Observables in this release.
Behavioral changes in 5.0
The
getElapsedTime()method oncom.mongodb.event.ConnectionReadyEventincludes the time taken to deliver theConnectionCreatedEvent. That is, the time returned includes the duration of thecom.mongodb.event.ConnectionPoolListener.connectionCreated()method.The
getElapsedTime()methods oncom.mongodb.event.ConnectionCheckedOutFailedEventandcom.mongodb.event.ConnectionCheckedOutEventinclude the time taken to deliver thecom.mongodb.event.ConnectionCheckOutStartedEvent. That is, the time returned includes the duration of thecom.mongodb.eventConnectionPoolListener.connectionCheckOutStarted()method.
New features in 5.0
The 5.0 driver release introduces the following features:
Adds support for the
authorizedCollectionoption of thelistCollectionscommand. This was done by changing thecom.mongodb.client.MongoDatabase.listCollectionNames()methods. The return type is nowcom.mongodb.client.ListCollectionNamesIterable, while previously it was aMongoIterable<String>. This change allows the return value to be configured using theListCollectionNamesIterable.authorizedCollections()method and specifying theauthorizedCollectionsoption. Equivalent changes were made to following classes and interfaces:com.mongodb.reactivestreams.client.MongoDatabaseorg.mongodb.scala.MongoDatabasecom.mongodb.kotlin.client.MongoDatabasecom.mongodb.kotlin.client.coroutine.MongoDatabase
These changes introduce a binary breaking change to the listCollectionsNames() method. For more information about the
MongoDatabase.listCollectionNames()method and theauthorizedCollectionsoption, see the listCollections Server manual page or Get a List of Collections.
Note
The v5.0.2 patch release fixed an issue related to how domain names are validated when you use SOCKS5 proxy functionality, allowing you to use domain names with more than six characters in the top-level domain.
What's New in 4.11
This section includes the following information:
Deprecations in 4.11
Warning
Deprecations in this release
To avoid breaking changes in future major releases of the driver, replace any application code that depends on deprecated methods and types.
The 4.11 driver release deprecates the following items:
The
getStats()andisCapped()instance methods of theDBCollectionclass are deprecated. The corresponding server commands are deprecated in MongoDB v6.2 and later. Use the$collStatsaggregation pipeline stage to retrieve the information provided by these methods instead. You can run the aggregation as shown in the following code example:Cursor cursor = collection.aggregate(Arrays.asList( new BasicDBObject("$collStats", new BasicDBObject("storageStats", new BasicDBObject()))), AggregationOptions.builder().build() ); To determine whether a collection is a capped collection, access the value of the
storageStats.cappedfield returned byCursorinstance in the preceding example aggregation.To learn more about the
$collStatsaggregation operator, see the $collStats (aggregation) Server manual entry.The following network address-related methods are deprecated and will be removed in v5.0:
The ServerAddress methods
getSocketAddress()andgetSocketAddresses().Instead of
getSocketAddress(), use thegetByName()instance method ofjava.net.InetAddress.Instead of
getSocketAddresses(), use thegetAllByName()instance method ofjava.net.InetAddress.The UnixServerAddress method
getUnixSocketAddress().Instead of
getUnixSocketAddress(), construct an instance ofjnr.unixsocket.UnixSocketAddress. Pass the full path of the UNIX socket file to the constructor. By default, MongoDB creates a UNIX socket file located at"/tmp/mongodb-27017.sock". To learn more about theUnixSocketAddress, see the UnixSocketAddress API documentation.
The following methods and types related to the StreamFactory interface are deprecated and scheduled for removal in v5.0:
streamFactoryFactory()method fromMongoClientSettings.BuildergetStreamFactoryFactory()method fromMongoClientSettingsNettyStreamFactoryFactoryclassNettyStreamFactoryclassAsynchronousSocketChannelStreamFactoryclassAsynchronousSocketChannelStreamFactoryFactoryclassBufferProviderclassSocketStreamFactoryclassStreamclassStreamFactoryclassStreamFactoryFactoryclassTlsChannelStreamFactoryFactoryclass
If you configure Netty by using
MongoClientSettings.Builder.streamFactoryFactory(), your code might resemble the following:import com.mongodb.connection.netty.NettyStreamFactoryFactory; // ... MongoClientSettings settings = MongoClientSettings.builder() .streamFactoryFactory(NettyStreamFactoryFactory.builder().build()) .build(); Replace this code with the TransportSettings.nettyBuilder() as shown in the following example:
import com.mongodb.connection.TransportSettings; // ... MongoClientSettings settings = MongoClientSettings.builder() .transportSettings(TransportSettings.nettyBuilder().build()) .build();
New Features in 4.11
New features of the 4.11 driver release include:
- Support for connecting to MongoDB by using a SOCKS5 proxy. To learn more see Connect to MongoDB by Using a SOCKS5 Proxy.
Note
The v4.11.3 patch release fixed an issue related to how domain names are validated when you use SOCKS5 proxy functionality, allowing you to use domain names with more than six characters in the top-level domain.
Added the
getSplitEvent()method to theChangeStreamDocumentclass to identify fragments of a change stream event that exceeds 16MB. You must use the aggregation stage$changeStreamSplitLargeEventin your change stream to handle events that exceed 16MB. To learn more, see Split Large Change Stream Events.Added an aggregation stage builder for
$vectorSearch. To learn more, see MongoDB Vector Search.Added MongoDB Search index management helpers. To learn more, see MongoDB Search Indexes.
Updated Snappy and Zstd compression library dependency versions. To learn more about the current dependency versions, see Compress Network Traffic.
Added
getElapsedTime()methods to the following classes to monitor the duration of connection pool events:Support for Java 21 virtual threads and structured concurrency. The driver internals were updated to avoid unnecessary pinning of virtual threads and to preserve interrupted status of a thread, as the latter matters for structured concurrency where it is used for cancellation.
To learn more about virtual threads, see the Virtual Threads JDK enhancement proposal. To learn more about structured concurrency, see the Structured Concurrency JDK enhancement proposal.
Updated API documentation for the following types:
What's New in 4.10
New features of the 4.10 driver release include:
Implementation of the
Accumulators.percentile()andAccumulators.median()methods for statistical aggregations.Interfaces in the
com.mongodb.client.model.searchpackage are now marked as@Sealedinstead of@Evolving. Sealed interfaces must not be extended or implemented by consumers of the library.Resolved an issue where the driver emitted duplicate log messages for retry operations. The driver now correctly emits one log message for each retry operation.
The
org.bson.codecs.Parameterizableinterface is deprecated. Instead of implementing this interface on a customCodectype, override theCodecProvider.get()method on the codec'sCodecProviderif the codec is intended for a parameterized type.Support for custom DNS resolvers.
Support for Queryable Encryption (QE). To learn more about the requirements for using the QE feature, see the Queryable Encryption Driver Compatibility Table.