What's New
Overview
Learn what's new in:
What's New in 4.0
Warning
Breaking Changes
C++ driver v4.0 contains breaking changes. For more information, see Version 4.0 in the Upgrade Driver Versions guide.
The v4.0 driver release includes the following new features:
Adds a getter method for the
start_at_operation_time
field of amongocxx::options::change_stream
instance.
What's New in 3.11
Warning
Breaking Changes
C++ driver v3.11 contains breaking changes. For more information, see Version 3.11 in the Upgrade Driver Versions guide.
The v3.11 driver release includes the following new features:
Adds support for MongoDB Server v8.0.
Adds support for Queryable Encryption range queries. To use this feature, your app must connect to MongoDB Server 8.0 or later. For more information about Queryable Encryption, see Queryable Encryption in the MongoDB Server manual.
Adds
empty()
member function formongocxx::v_noabi::bulk_write
.
To learn more about this release, see the v3.11 Release Notes on GitHub.
What's New in 3.10
Warning
Breaking Changes
C++ driver v3.10 contains breaking changes. For more information, see Version 3.10 in the Upgrade Driver Versions guide.
The v3.10.0 driver release includes the following new features:
Adds forward headers that provide non-defining declarations of
bsoncxx
andmongocxx
class types. The driver does not support user-defined forward declarations of any library entity. To obtain the declaration or definition of a library entity, always include the corresponding header.The CMake option
ENABLE_BSONCXX_USE_POLY_IMPLS
allows selectingbsoncxx
implementations of C++17 polyfills by default when no polyfill library is requested. This option isOFF
by default.The CMake option
BSONCXX_POLY_USE_IMPLS
allows selectingbsoncxx
implementations of C++17 polyfills instead of external libraries or the C++ standard library. This option isOFF
by default.The
bsoncxx::v_noabi
andmongocxx::v_noabi
namespaces are no longer declared inline. Root namespace declarations are still supported and expected to remain equivalent to their prior definitions. For example,bsoncxx::document
is still equivalent tobsoncxx::v_noabi::document
, andmongocxx::client
is still equivalent tomongocxx::v_noabi::client
.By default, when library filenames are compiled with MSVC (as detected by CMake's
MSVC
variable), they are embedded with an ABI tag string. These strings are similar to the following:bsoncxx-v_noabi-rhs-x64-v142-md.lib To disable this behavior, set
ENABLE_ABI_TAG_IN_LIBRARY_FILENAMES=OFF
as part of your CMake configuration.The ABI tag string can also be embedded in pkg-config metadata filenames, similar to the following:
libbsoncxx-v_noabi-rhs-x64-v142-md.pc To enable this behavior, set
ENABLE_ABI_TAG_IN_LIBRARY_FILENAMES=ON
andENABLE_ABI_TAG_IN_PKGCONFIG_FILENAMES=ON
as part of your CMake configuration.
To learn more about this release, see the v3.10 Release Notes on GitHub.
What's New in 3.9
Warning
Breaking Changes
C++ driver v3.9 contains breaking changes. For more information, see Version 3.9 in the Upgrade Driver Versions guide.
The v3.9 driver release includes the following new features:
The C++ driver container image is now available on Docker hub.
The driver automatically downloads the MongoDB C Driver dependency if you don't provide it.
The driver no longer builds tests as part of the
all
target. To build tests, setBUILD_TESTING=ON
as part of your CMake configuration.The driver uses the
FetchContent
module to download and build the MNMLSTC Core polyfill library, if not provided by the system, instead of theExternalProject
module. It also does not patchinclude
directives in MNMLSTC Core headers.Adds the CMake option
MONGOCXX_OVERRIDE_DEFAULT_INSTALL_PREFIX
. If this option is set toTRUE
, theCMAKE_INSTALL_PREFIX
option defaults to the build directory. The default value of this option isTRUE
.Adds an API for managing Atlas Search indexes.
Adds the
VERSIONINFO
resource tobsoncxx.dll
andmongocxx.dll
.Explicitly documents that throwing an exception from an APM callback is undefined behavior.
Does not prematurely install MNMLSTC Core headers during the CMake build step.
Requires that a MongoDB C Driver CMake package is found via
find_dependency()
for all installed C++ driver package configurations.
To learn more about this release, see the v3.9 Release Notes on GitHub.