Releases: mongodb/mongo-cxx-driver
Release list
MongoDB C++11 Driver r4.4.0
Important
This is the first release supporting a stable ABI for the bsoncxx and mongocxx libraries.
- The stable ABI is declared under the
v1namespace of the bsoncxx and mongocxx libraries. - The unstable ABI declared under the
v_noabinamespace is still supported. - Root namespace redeclarations (e.g.
bsoncxx::document::value) are recommended when ABI stability is not a requirement. These redeclarations will be updated to the latest ABI version equivalents in an upcoming API major release.
See ABI Versioning for more information.
Fixed
- Include of
v1/text_options.hpp(normal header) byoptions/text-fwd.hpp(forward header). - Include of v_noabi macro guard headers by
text_options.hpp(v1).
Deprecated
- Support for MongoDB Server 4.2.
Changed
- Stable ABI (v1) is now officially supported for both bsoncxx and mongocxx libraries.
- The soversion for both bsoncxx and mongocxx libraries is now set to
1. - Library filenames now include the ABI version number, e.g.
libbsoncxx1.so.4.4.0. - pkg-config config filenames now include the ABI version number, e.g.
libbsoncxx1.pc. - CMake package config filenames now use
camelCase, e.g.bsoncxxConfig.cmake. - Bump the minimum required C Driver version to 2.3.1.
Added
- Support for the "readConcern" option field to "delete", "insert", "replace", "bulkWrite", "findOneAnd*", "count", and "distinct" operations.
- Support for
MONGODB-OIDCauthMechanism. - Support for client bulk write API (
mongocxx::client_bulk_write).- Unlike collection bulk write (
mongocxx::bulk_write), client bulk write supports writes across more than one collection and can group inserts, updates, and deletes in the same network payload. - Requires MongoDB Server 8.0 or newer.
- See:
- Unlike collection bulk write (
See the full list of changes in Jira.
Feedback
To report a bug or request a feature, please open a ticket in the MongoDB issue management tool Jira:
- Create an account and login.
- Navigate to the CXX project
- Click
Create.
Signature Verification
Release artifacts may be verified by using the accompanying detached signature (.asc) and the cpp-driver public key obtained from https://pgp.mongodb.com.
MongoDB C++11 Driver r4.3.1
Fixed
- Do not set
upsert: truein "findOneAnd*" operations when the option is explicitly set tofalse(regression in 4.2.0).
See the full list of changes in Jira.
Feedback
To report a bug or request a feature, please open a ticket in the MongoDB issue management tool Jira:
- Create an account and login.
- Navigate to the CXX project
- Click
Create.
Signature Verification
Release artifacts may be verified by using the accompanying detached signature (.asc) and the cpp-driver public key obtained from https://pgp.mongodb.com.
MongoDB C++11 Driver r4.3.0
Fixed
- Added missing subscript operators for class types declared in
bsoncxx::vector::iterators.
Deprecated
- Support for Visual Studio 2015 (EOL since Oct 2025). Use Visual Studio 2017 or newer.
Changed
- Bump the minimum required C Driver version to 2.3.0.
Added
- Added support for MongoDB's Intelligent Workload Management (IWM) and ingress connection rate limiting features. The driver now gracefully handles write-blocking scenarios and optimizes connection establishment during high-load conditions to maintain application availability.
- Supported on all commands.
- Custom application retry logic may need to be adjusted to avoid retrying too long.
- Upgrade is recommended to avoid impacts of server changes related to overload errors.
- If not upgrading, custom application retry logic may need to be adjusted to handle higher rates of overload errors.
- Add URI option
maxAdaptiveRetriesto configure the maximum number of retries for operations that fail with aSystemOverloadedError(default:2). - Add URI option
enableOverloadRetargetingto control whether retries ofSystemOverloadedErrorwill attempt to use a different server (default:false).
- Added support for the "readConcern" option field to "find" and "update" operations.
See the full list of changes in Jira.
Feedback
To report a bug or request a feature, please open a ticket in the MongoDB issue management tool Jira:
- Create an account and login.
- Navigate to the CXX project
- Click
Create.
Signature Verification
Release artifacts may be verified by using the accompanying detached signature (.asc) and the cpp-driver public key obtained from https://pgp.mongodb.com.
MongoDB C++11 Driver r4.2.0
Important
This release removes and changes the exports of many unstable ABI symbols.
As a reminder, recompilation is required to link with a new release of the unstable ABI for mongo-cxx-driver libraries.
Added
- Experimental support for stable ABI interfaces under the
v1namespace for both bsoncxx and mongocxx libraries. - To support incremental migration, the following entities are defined as equivalent to their renamed counterparts.
bsoncxx::types::id: equivalent tobsoncxx::type.bsoncxx::types::binary_subtype: equivalent tobsoncxx::binary_sub_type.bsoncxx::types::view: equivalent tobsoncxx::types::bson_value::view.bsoncxx::types::value: equivalent tobsoncxx::types::bson_value::value.type_view()inbsoncxx::document::elementandbsoncxx::array::element: equivalent toget_value().type_value()inbsoncxx::document::elementandbsoncxx::array::element: equivalent toget_owning_value().
- Experimental support for In-Use Encryption Text Indexes (
mongocxx::v1::text_options). - Change stream helpers for convenient iteration (
mongocxx::v1::change_stream::nextandmongocxx::v1::change_stream::try_next).
Changed
Important
This release provides an experimental stable ABI for bsoncxx and mongocxx.
- For consistency with the library and package filenames of MongoDB C Driver 2.0.0 and newer:
- CMake package config files now use the
<name>Config.cmakeand<name>ConfigVersion.cmakepattern. (Old:<name>-config.cmakeand<name>-config-version.cmake)
- CMake package config files now use the
- CMake 3.16.0 or newer is required when
ENABLE_TESTS=ONfor compatibility with the updated Catch2 library version (3.7.0 -> 3.8.1). - Minimum supported compiler versions to build from source are updated to the following:
- GCC 8.1 (from GCC 4.8.2).
- Users on RHEL 7 may consult Red Hat's "Hello World - installing GCC on RHEL 7" or "How to install GCC 8 and Clang/LLVM 6 on Red Hat Enterprise Linux 7" for instructions on how to obtain GCC 8 or newer.
- Clang 3.8 (from Clang 3.5).
- Apple Clang 13.1 with Xcode 13.4.1 (from Apple Clang 5.1 with Xcode 5.1).
- MSVC 19.0.24210 with Visual Studio 2015 Update 3 (from MSVC 19.0.23506 with Visual Studio 2015 Update 1).
- GCC 8.1 (from GCC 4.8.2).
mongocxx::v_noabi::instance::~instance()no longer skips callingmongoc_cleanup()when compiled with ASAN enabled.- See google/sanitizers#89 for context.
- Bump the minimum required C Driver version to 2.2.3.
Deprecated
mongocxx::v_noabi::instance::current()is "for internal use only". Theinstanceconstructor(s) should be used instead.- Creating the
instanceobject in the scope ofmain(), or in an appropriate (non-global) scope such that its (non-static) lifetime is valid for the duration of all other mongocxx library operations, is recommended over the following workarounds. - If there is only one call to
current()present within an application, it may be replaced with a static local variable:// Before: mongocxx::instance::current(); // After: static mongocxx::instance instance; // Only ONE instance object!
- If there are multiple calls to
current()present within an application, they may be replaced with a call to a user-defined function containing the static local variable:mongocxx::instance& mongocxx_instance() { static mongocxx::instance instance; // Only ONE instance object! return instance; }
- Creating the
- These following entities will be renamed (and removed) in an upcoming major release. To support incremental migration, both old and new names are still provided.
bsoncxx::type->bsoncxx::types::id.bsoncxx::binary_sub_type->bsoncxx::types::binary_subtype.bsoncxx::types::bson_value::view->bsoncxx::types::viewbsoncxx::types::bson_value::value->bsoncxx::types::valueget_value()->type_view()inbsoncxx::document::elementandbsoncxx::array::element.get_owning_value()->type_value()inbsoncxx::document::elementandbsoncxx::array::element.
Removed
- Support for MongoDB Server 4.2.
- Support for macOS 11 and macOS 12 (deprecated in 4.1.0).
Fixed
- Do not throw when comparing
mongocxx::result::insert_manywith non-ObjectID IDs.
See the full list of changes in Jira.
Feedback
To report a bug or request a feature, please open a ticket in the MongoDB issue management tool Jira:
- Create an account and login.
- Navigate to the CXX project
- Click
Create.
Signature Verification
Release artifacts may be verified by using the accompanying detached signature (.asc) and the cpp-driver public key obtained from https://pgp.mongodb.com.
MongoDB C++11 Driver r4.1.4
Changed
- Bump the auto-downloaded C Driver version to 2.1.2.
See the full list of changes in Jira.
Feedback
To report a bug or request a feature, please open a ticket in the MongoDB issue management tool Jira:
- Create an account and login.
- Navigate to the CXX project
- Click
Create.
Signature Verification
Release artifacts may be verified by using the accompanying detached signature (.asc) and the cpp-driver public key obtained from https://pgp.mongodb.com.
MongoDB C++11 Driver r3.11.1
Fixed
- The API version of auto-downloaded C Driver libraries no longer incorrectly inherits the C++ Driver's
BUILD_VERSIONvalue.
Changed
- Bump the minimum required C Driver version to 1.30.6.
See the full list of changes in Jira.
Feedback
To report a bug or request a feature, please open a ticket in the MongoDB issue management tool Jira:
- Create an account and login.
- Navigate to the CXX project
- Click
Create.
Signature Verification
Release artifacts may be verified by using the accompanying detached signature (.asc) and the cpp-driver public key obtained from https://pgp.mongodb.com.
MongoDB C++11 Driver r4.1.3
Changed
- Bump the auto-downloaded C Driver version to 2.0.2.
See the full list of changes in Jira.
Feedback
To report a bug or request a feature, please open a ticket in the MongoDB issue management tool Jira:
- Create an account and login.
- Navigate to the CXX project
- Click
Create.
Signature Verification
Release artifacts may be verified by using the accompanying detached signature (.asc) and the cpp-driver public key obtained from https://pgp.mongodb.com.
MongoDB C++11 Driver r4.1.2
Fixed
storage_engine() constinmongocxx::v_noabi::options::indexis correctly exported using mongocxx export macros instead of bsoncxx export macros.- Fix
-Wdeprecated-literal-operatorwarning.
See the full list of changes in Jira.
Feedback
To report a bug or request a feature, please open a ticket in the MongoDB issue management tool Jira:
- Create an account and login.
- Navigate to the CXX project
- Click
Create.
Signature Verification
Release artifacts may be verified by using the accompanying detached signature (.asc) and the cpp-driver public key obtained from https://pgp.mongodb.com.
MongoDB C++11 Driver r4.1.1
Fixed
- CMake option
ENABLE_TESTS(OFFby default) is no longer overwritten by the auto-downloaded C Driver (ONby default) during CMake configuration. - Static pkg-config files are updated to depend on the static (not shared) libbson / libmongoc packages.
- Fix build if macros
GCC/GNU/Clang/MSVCare already defined.
See the full list of changes in Jira.
Feedback
To report a bug or request a feature, please open a ticket in the MongoDB issue management tool Jira:
- Create an account and login.
- Navigate to the CXX project
- Click
Create.
Signature Verification
Release artifacts may be verified by using the accompanying detached signature (.asc) and the cpp-driver public key obtained from https://pgp.mongodb.com.
MongoDB C++11 Driver r4.1.0
Fixed
- The API version of auto-downloaded C Driver libraries no longer incorrectly inherits the C++ Driver's
BUILD_VERSIONvalue. - Potentially unchecked narrowing conversion in
bsoncxx::v_noabi::builder::core::append()now throws an exception with error codek_cannot_append_string.
Added
storage_engine()inmongocxx::v_noabi::options::index.- Support for sort option with replaceOne and updateOne operations.
- Support for BSON Binary Vector.
- Support $lookup in CSFLE and QE.
Deprecated
- Support for MacOS 11 (EOL since Nov 2020) and MacOS 12 (EOL since Oct 2021).
storage_options()inmongocxx::v_noabi::options::index: usestorage_engine()instead.base_storage_optionsandwiredtiger_storage_optionsinmongocxx::v_noabi::options::indexare also deprecated.
hedge()inmongocxx::v_noabi::read_preference: hedged reads will no longer be supported by MongoDB.
Changed
- Bump the minimum required C Driver version to 2.0.0.
- Set CMake maximum policy version to 4.0.
- The CMake minimum required version is still 3.15.
- C++17 polyfill implementations for
optional<T>andstring_vieware now declared in thebsoncxx::v1::stdxnamespace.- The
bsoncxx::v_noabi::stdxnamespace now contains type aliases to theirv1equivalents. - This is an ABI breaking change for all symbols which reference
bsoncxx::v_noabi::stdxin their declaration (including mongocxx library symbols).- This does not affect users who compile with C++17 or newer and have not set
BSONCXX_POLY_USE_IMPLS=ON.
- This does not affect users who compile with C++17 or newer and have not set
- The
See the full list of changes in Jira.
Feedback
To report a bug or request a feature, please open a ticket in the MongoDB issue management tool Jira:
- Create an account and login.
- Navigate to the CXX project
- Click
Create.
Signature Verification
Release artifacts may be verified by using the accompanying detached signature (.asc) and the cpp-driver public key obtained from https://pgp.mongodb.com.