MongoDB C++ Driver
Overview
Welcome to the documentation site for the official MongoDB C++ Driver.
Get Started
Learn how to install the driver, establish a connection to MongoDB, and begin working with data in the Get Started with the C++ Driver tutorial.
Connect to MongoDB
Learn how to create and configure a connection to a MongoDB deployment in the Connect to MongoDB section.
Read Data from MongoDB
Learn how you can retrieve data from MongoDB in the Read Data from MongoDB section.
Write Data to MongoDB
Learn how you can write data to MongoDB in the Write Data to MongoDB section.
Optimize Queries with Indexes
Learn how to work with common types of indexes in the Optimize Queries with Indexes section.
Transform Your Data with Aggregation
Learn how to use the C++ driver to perform aggregation operations in the Transform Your Data with Aggregation section.
Secure Your Data
Learn about ways you can authenticate your application and encrypt your data in the Secure Your Data section.
Specialized Data Formats
Learn how to work with specialized data formats and custom types in the Specialized Data Formats section.
Advanced Installation Options
Learn about advanced configuration and installation options in the Advanced Configuration and Installation Options section.
What's New
For a list of new features and changes in each version, see the What's New section.
Upgrade Driver Versions
Learn what changes you might need to make to your application to upgrade driver versions in the Upgrade Driver Versions section.
Issues & Help
Learn how to report bugs, contribute to the driver, and find help in the Issues & Help section.
Compatibility
For compatibility tables that show the recommended C++ driver version to use for specific C++ and MongoDB Server versions, see the Compatibility section.
API Documentation
For detailed information about types and methods in the C++ driver, see the C++ driver API documentation.
C++17 Polyfill Configuration
Important
We recommend using the C++ standard library whenever possible by setting the
CMAKE_CXX_STANDARD
configuration option to 17
or newer.
The MongoDB C++ Driver uses C++17 features std::optional<T>
and std::string_view
.
If you configure the driver with a pre-C++17 standard, the bsoncxx library provides
polyfill implementations for these C++17 features. The driver uses the bsoncxx polyfill
implementations when the CMAKE_CXX_STANDARD
configuration option is set to a number
less than 17
. By default, this option is set to 11
.
Warning
The choice of polyfill library has a direct impact on the public API and ABI for the mongocxx
library. Changing the polyfill can lead to both source-breaking changes during compilation
and binary-breaking changes during linking or execution. To limit reliance on polyfill-specific
behavior, avoid using stdx::string_view
and stdx::optional<T>
with non-bsoncxx and non-mongocxx
library interfaces.
Driver Status by Family and Version
Stability indicates whether this driver is recommended for production use. Currently, no drivers guarantee API or ABI stability.
For documentation about previous releases, see the legacy documentation.
Family/version | Stability | Development | Purpose |
---|---|---|---|
(repo master branch) | Unstable | Active development | New feature development |
mongocxx 4.0.x | Stable | Bug fixes only | Current stable C++ driver release |
mongocxx 3.11.x | Stable | Bug fixes until November 2025 | Previous stable C++ driver release |
mongocxx 3.10.x | Stable | None | Previous stable C++ driver release |
mongocxx 3.9.x | Stable | None | Previous stable C++ driver release |
mongocxx 3.8.x | Stable | None | Previous stable C++ driver release |
mongocxx 3.7.x | Stable | None | Previous stable C++ driver release |
mongocxx 3.6.x | Stable | None | Previous stable C++ driver release |
mongocxx 3.5.x | Stable | None | Previous stable C++ driver release |
mongocxx 3.4.x | Stable | None | Previous stable C++ driver release |
mongocxx 3.3.x | Stable | None | Previous stable C++ driver release |
mongocxx 3.2.x | Stable | None | Previous stable C++ driver release |
mongocxx 3.1.x | Stable | None | Previous stable C++ driver release |
mongocxx 3.0.x | Stable | None | Previous stable C++ driver release | |
Current Driver
The mongocxx is a ground-up rewrite of a C++ driver for MongoDB based on libmongoc. It requires a C++11 compiler. It is known to build on x86 and x86-64 architectures for Linux, macOS, Windows, and FreeBSD.
The mongocxx driver library includes a matching bson package, bsoncxx, that implements the BSON specification. This library can be used standalone for object serialization and deserialization even when one is not using MongoDB at all.
Releases of the mongocxx driver have version numbers like v3.x.y.
Note
There were no v2.x.y C++ drivers to avoid confusion with the deprecated legacy-0.0-26compat-2.x.y drivers.
How to get help
Ask questions on our MongoDB Community Forums.
Visit our Support Channels.
See how to report a bug.
License
MongoDB C++ drivers are available under the terms of the Apache License, version 2.0.