Skip to content

Releases: mongodb/mongo-cxx-driver

MongoDB C++11 Driver 3.0.2

19 Sep 20:27
@xdg xdg
Compare
Choose a tag to compare

This is the second patch release of the new MongoDB C++11 driver. Please see the release notes for the 3.0.1 driver below for additional details on this new driver.

Please note that this version of the driver requires the MongoDB C driver 1.3.4 in order to build and exhibit expected behavior.

The MongoDB C++11 driver 3.0.x series does not promise API or ABI stability across patch releases. There are some minor API breaking changes in the 3.0.2 release. We apologize for any inconvenience. We are aiming to achieve API stability for the upcoming 3.1.x series. Some known changes include:

  • bsoncxx::oid objects are now default initialized to a valid state
  • JSON-ification of element and types has been removed
  • JSON formatting has changed to use libbson's JSON algorithm

Bug

  • [CXX-878] - max_time->count(), seconds.count() ambiguous
  • [CXX-879] - Error-prone use of std::time_t in bsoncxx::types::b_date
  • [CXX-880] - MongoDB C++11 driver fails to build on FreeBSD
  • [CXX-893] - Link errors in Debug Build
  • [CXX-896] - Use chrono::duration for mongocxx::options::index::expire_after_seconds
  • [CXX-917] - SSL support is examining the wrong define to detect C driver SSL support
  • [CXX-919] - BSON Null should not be discouraged
  • [CXX-934] - Remove database::stats()
  • [CXX-940] - Default constructed bsoncxx::oid object is dangerous
  • [CXX-941] - When converting to JSON, strings are not escaped
  • [CXX-986] - Invalid error handling in find_and_modify - null pointer access
  • [CXX-988] - Fix documentation of invalid element access
  • [CXX-1010] - PR: Use a regular string not a raw string for MSVC2015
  • [CXX-1011] - PR: Support finding libbson and mongo_c on Windows when pkg-config is present
  • [CXX-1034] - unique_ptr T type for document and array value should be array-ish
  • [CXX-1040] - Segmentation fault in instance_management

Improvement

  • [CXX-861] - Documentation missing examples for accessing data
  • [CXX-881] - Change mongocxx::options setters to return a self reference
  • [CXX-882] - Incorrect mongoc include path, non-pkgconfig
  • [CXX-886] - Add the $lookup pipeline operator
  • [CXX-887] - Create an example of getting _id's from insert results
  • [CXX-890] - Add an example that shows how to manage a long-lived instance object
  • [CXX-902] - Reduce flushes on output operations...
  • [CXX-904] - Grammatical errors in API documentation...
  • [CXX-916] - Documented exceptions are incorrect

New Feature

  • [CXX-784] - Add ability to use document::view with stream builder
  • [CXX-875] - Database::has_collection has ambiguous error modes

MongoDB Legacy C++ Driver 1.1.2

21 Jun 19:46
Compare
Choose a tag to compare

This is a minor patch release above the prior legacy-1.1.1 release, and is a recommended upgrade for all users of legacy-1.1.1 or older legacy driver releases.

There are only trivial differences between this release and the legacy-1.1.1 release, below. This release is being issued to roll up backports from MongoDB r3.0.8...r3.0.12.

Bug

  • [CXX-899] - Update documentation of third-party licenses
  • [CXX-906] - Null dereference in DBClientWithCommands methods: getCollectionNames(), getCollectionInfos(), exists()
  • [CXX-920] - ConfError utility is not defined in the legacy driver build system
  • [CXX-921] - legacy driver fails to build on FreeBSD
  • [CXX-924] - legacy driver fails to build on Hurd
  • [CXX-928] - "KeyError: 'MONGO_SSL'" build error in non-SSL legacy builds

Improvement

  • [CXX-832] - Friendlier error message when decoding Decimal128 BSONElements

Task

  • [CXX-850] - Backport server r3.0.8..r3.0.12 changes

MongoDB Legacy C++ Driver 1.1.1

19 Apr 15:51
Compare
Choose a tag to compare

This is a minor patch release above the prior legacy-1.1.0 release, and is a recommended upgrade for all users of legacy-1.1.0 or older legacy driver releases.

There are only trivial differences between this release and the legacy-1.1.0 release, below. This release is being issued to roll up backports from MongoDB r3.0.7...r3.0.8 and improve test coverage ahead of a larger drop of backports from MongoDB r3.0.8..r3.0.11.

There are no interesting user-facing bugs or changes to report in this release.

Bug

  • [CXX-782] - Doxygen documentation does not include all directories
  • [CXX-897] - CountWithHint test fails when run against 3.3 release

Improvement

  • [CXX-822] - Bulk operation initialiser comments need to be swapped.

Task

  • [CXX-724] - Backport server r3.0.7..r3.0.8 changes
  • [CXX-780] - Add VS2015 builders for legacy C++ driver

MongoDB C++11 Driver 3.0.1

30 Mar 18:48
Compare
Choose a tag to compare

This is the first patch release of the new MongoDB C++11 driver. Please see the release notes for the 3.0.0 driver below for additional details on this new driver.

Please note that this version of the driver requires the MongoDB C driver 1.3.4 in order to build and exhibit expected behavior.

Please note that this version includes a small breaking change, related to CXX-862. Some operations on array and document elements that previously would throw exceptions now return invalid elements instead, which is more consistent with the overall library design.

Please note the following known issues in this release:

Known Issues

  • [CXX-778] - C++ driver SSL cannot be configured independently of C driver
  • [CXX-771] - Max time argument to some collection methods is ignored
  • [CXX-784] - Cannot use `document::view` with stream builder
  • [CXX-834] - Return local mongoc errors and server errors in different error spaces
  • [CXX-804] - ABI is not set
  • [CXX-880] - Fails to build on FreeBSD
  • [CXX-879] - Error-prone use of std::time_t in bsoncxx::types::b_date
  • [CXX-878] - max_time->count(), seconds.count() ambiguous
  • [CXX-875] - Database::has_collection has ambiguous error modes

The following issues have been resolved in 3.0.1 since the prior 3.0.0 release:

Bug

  • [CXX-758] - ReadConcern should be inherited from a parent when not set
  • [CXX-835] - Support lint when run from non-repository root
  • [CXX-836] - Missing #include <string> in mongo-cxx-driver
  • [CXX-839] - cursor_type isn't propagated
  • [CXX-847] - Add documentation for model/write
  • [CXX-863] - Failing to compile when MONGOC_HAVE_SSL is defined
  • [CXX-864] - Evergreen builds do not enable SSL
  • [CXX-865] - Could not build with clang 3.8
  • [CXX-868] - Fails to build on VS2015 with error C2719
  • [CXX-877] - Have no idea how to add bsoncxx::document::value to another document

Improvement

  • [CXX-837] - Update website links to point to C++11 driver api documentation
  • [CXX-843] - Add the $sample pipeline operator
  • [CXX-862] - The element and array type operator[] function should not throw
  • [CXX-872] - Add an example for providing custom adapaters for the bsoncxx stream builder

MongoDB 2.6 Compatible C++ Driver 2.6.12

02 Apr 14:52
Compare
Choose a tag to compare

PLEASE NOTE: You should prefer "legacy" release series if possible. At the time of this writing, the most current release in the legacy-1.1 release series is https://github.com/mongodb/mongo-cxx-driver/releases/tag/legacy-1.1.0.

Please also note that the C++11 driver is now stable. Users of both the 26compat and legacy drivers are encouraged to migrate to the C++11 driver if at all possible.

See the MongoDB Server r2.6.11..r2.6.12 changelog for details on the changes in this release.

MongoDB C++11 Driver 3.0.0

28 Jan 20:14
Compare
Choose a tag to compare

This is the first stable release of the new MongoDB C++11 driver.

Please see our blog post for a full description of the new driver's design goals. The new driver is incompatible with all previous MongoDB C++ drivers. Due to the long history and complex version numbering of prior C++ drivers released by MongoDB, the C++11 driver is issuing its first stable release as 3.0.0. This is the lowest major version number that was found to be unambiguous with all previously released MongoDB C++ driver versions.

As specified in the Quickstart Guide, building the driver requires a conforming C++11 compiler (GCC 4.8.2, clang-3.5, VS 2015 Update 1, etc.) and depends on the 1.3.1 release of the MongoDB C Driver.

While we plan to commit to a stable ABI in the future, versions prior to 3.1.0 will not offer a stable ABI. The library currently has a soname ABI version of _noabi which indicates no API or ABI stability guarantee across any two releases. We are holding off on setting an ABI version so that we can incorporate post-GA feedback before locking down the ABI. We anticipate releasing 3.1.0 with an ABI this Spring.

API documentation can be found here. Please file JIRA tickets if you encounter any problems using the driver. Pull requests against the master branch are welcomed and encouraged.

Please note the following known issues in this release:

Known Issues

  • [CXX-778] - C++ driver SSL cannot be configured independently of C driver
  • [CXX-771] - Max time argument to some collection methods is ignored
  • [CXX-784] - Cannot use `document::view` with stream builder
  • [CXX-758] - Read concern is not inherited when not explicitly set when built against libmongoc < 1.3.2
  • [CXX-834] - Return local mongoc errors and server errors in different error spaces
  • [CXX-804] - ABI is not set

The following issues have been resolved in 3.0.0 since the prior 3.0.0-rc0 release:

Bug

  • [CXX-805] - options::find::comment() is unused
  • [CXX-811] - MCI builds that are failing are shown as passing
  • [CXX-813] - Memory leak detected
  • [CXX-814] - test_driver issues warning that bulk_write update_one requires $ operators
  • [CXX-825] - mongocxx_mocked in debug requres /bigobj on Windows
  • [CXX-827] - uri constructor calls .data() on a string_view and passes to libmongoc
  • [CXX-828] - Requires.private field occurs twice in....
  • [CXX-830] - bsoncxx passes non-terminated strings into libbson

Improvement

  • [CXX-522] - Tag free functions with calling convention macro
  • [CXX-680] - Productionize clang-format
  • [CXX-754] - write example that shows how to handle driver exceptions gracefully
  • [CXX-793] - Audit all files checked in to git for copyright header
  • [CXX-794] - Audit all C++ headers and source files for proper includes and include ordering
  • [CXX-796] - Improve bsoncxx doc comments
  • [CXX-807] - Enforce compiler minima in CMake
  • [CXX-810] - Remove WriteConcern fsync property
  • [CXX-812] - Support GCC 4.8.2
  • [CXX-815] - b64_ntop.h should be a private header and not installed
  • [CXX-817] - Improve bsoncxx polyfill selection options
  • [CXX-818] - Add doxygen 'relates' tag docs for all free relational ops
  • [CXX-819] - VS2015 build should default to boost, not mnmlstc
  • [CXX-821] - Fix TODO comments about linking to documentation when available

MongoDB C++11 Driver 3.0.0-rc0

11 Jan 22:33
Compare
Choose a tag to compare
Pre-release

This is the first release candidate of the new MongoDB C++11 driver. This is a pre-release version of the driver and is not suitable for production use.

Please see our blog post for a full description of the new driver's design goals. The new driver is incompatible with all previous MongoDB C++ drivers. Due to the long history and complex version numbering of prior C++ drivers released by MongoDB, the C++11 driver is issuing its first stable release as 3.0.0. This is the lowest major version number that was found to be unambiguous with all previously released MongoDB C++ driver versions.

As specified in the Quickstart Guide, building the driver requires a conforming C++11 compiler (GCC 4.9, clang-3.4, VS 2015 Update 1, etc.) and depends on the 1.3 release of the MongoDB C Driver.

While we plan to commit to a stable ABI in the future, versions prior to 3.1.0 will not offer a stable ABI. The library currently has a soname ABI version of _noabi which indicates no API or ABI stability guarantee across any two releases. We are holding off on setting an ABI version so that we can incorporate post-GA feedback before locking down the ABI.

API documentation can be found here. Please file JIRA tickets if you encounter any problems using the driver. Pull requests against the master branch are welcomed and encouraged.

Please note the following known issues in this release:

Known Issues

  • [CXX-778] - C++ driver SSL cannot be configured independently of C driver
  • [CXX-771] - Max time argument to some collection methods is ignored
  • [CXX-784] - Cannot use `document::view` with stream builder
  • [CXX-522] - Windows calling convention not specified for free functions
  • [CXX-805] - `options::find::comment` is not honored
  • [CXX-758] - Read concern is not inherited when not explicitly set
  • [CXX-807] - Required compiler minima not enforced by CMake
  • [CXX-808] - Missing error codes for server-side errors

Detailed information on the changes in this release since 0.2.0 (the prior alpha) can be found in the tickets below:

Bugs Fixed

  • [CXX-638] - C++ Driver on master fails to compile with Visual Studio 2015
  • [CXX-640] - actually set options in mongocxx::client constructor
  • [CXX-661] - bsoncxx::oid hex string constructor broken
  • [CXX-677] - bsoncxx static lib wrongly called bson.a
  • [CXX-681] - Cannot get deleted_count from result of collection::delete_one/many
  • [CXX-687] - collection::create_index does not support any options
  • [CXX-702] - database::create_collection not implemented
  • [CXX-713] - Add MONGOCXX_PRIVATE macro to all private constructors / methods
  • [CXX-723] - Actually sort documents with find
  • [CXX-730] - string_view.data() is unsafe
  • [CXX-731] - New driver examples seg fault
  • [CXX-742] - client::database() should raise an exception if client is uninitialized
  • [CXX-743] - Documentation for database::list_collections doesn't match declaration
  • [CXX-745] - Implement mongocxx::database::drop()
  • [CXX-755] - C++ driver fails to build when ssl is disabled on the C driver
  • [CXX-757] - document{} << const char* casts argument to bool
  • [CXX-759] - document/array::view.begin() != .end() for empty documents
  • [CXX-761] - Stream builder error for invalid context is unfriendly
  • [CXX-762] - Audit construction, copy, move and destruction of bsoncxx::v0::types::value
  • [CXX-774] - Cmake/Make parallelized build fails
  • [CXX-781] - CMake path incorrect when subproject
  • [CXX-788] - Number of 'const' qualifiers in return values
  • [CXX-791] - bulk_write constructor should take an enum not a boolean
  • [CXX-798] - Printing the inserted IDs returned by a bulk_write throws
  • [CXX-801] - bsoncxx::view_or_value should have private members
  • [CXX-802] - coll.drop() throws if collection doesn't exist

Improvements

  • [CXX-578] - expose wrapper for mongoc_log_handler
  • [CXX-580] - add syntactic sugar for reaching into deeply nested BSON structures
  • [CXX-585] - Make all publicly visible macros hygenic
  • [CXX-608] - Permit default construction of client/db/collection
  • [CXX-616] - simplify bsoncxx/util/functor.hpp
  • [CXX-626] - Provide support to construct b_date from std::chrono::time_point
  • [CXX-628] - Create an unreachable macro and use where needed
  • [CXX-629] - Attach visibility attribute to enum classes where needed
  • [CXX-630] - Improve move semantics of model::write
  • [CXX-631] - collection::create_index should return server response
  • [CXX-632] - de-inline collection::insert_many body to the extent possible
  • [CXX-633] - Understand requirements on count::hint
  • [CXX-634] - Find a home for options::return_document enum
  • [CXX-635] - Determine desired visibility of insert_many constructor
  • [CXX-636] - Determine return type of write_concern::tag
  • [CXX-654] - Add empty() to bsoncxx::array::view()
  • [CXX-704] - Create Write Concern W enum (for majority, default, etc)
  • [CXX-710] - Allow copying of collections
  • [CXX-712] - Add ordered option to insert_many
  • [CXX-715] - Add CRL file to SSL options
  • [CXX-716] - use stdx names in the mongocxx via mongocxx/stdx.hpp
  • [CXX-727] - Make it possible to rename collections
  • [CXX-733] - Move BSONCXX_INLINE and MONGOCXX_INLINE to a compiler header
  • [CXX-750] - Rename database::command to database::run_command
  • [CXX-751] - specified timeouts with chrono
  • [CXX-753] - Allow copying of databases
  • [CXX-756] - Make accessor...
Read more

MongoDB Legacy C++ Driver 1.1.0

07 Dec 17:40
Compare
Choose a tag to compare

This release introduces support for select MongoDB 3.2 features.

There are only minor differences between this release and the legacy-1.1.0-rc0 release, as identified below. Please see the release notes for legacy-1.1.0-rc0 for details on what is new in this release.

This release obsoletes the legacy-1.0 release stream: all future updates to the legacy C++ driver will be delivered in the legacy-1.1 release series.

Bug

  • [CXX-744] - RandomTest.NextInt64SanityCheck Fails on PPC

MongoDB Legacy C++ Driver 1.0.7

17 Nov 15:46
Compare
Choose a tag to compare

The following tickets were resolved in this release:

Task

  • [CXX-666] - Backport server r3.0.6..r3.0.7 changes

Select portions of the following relevant SERVER tickets were backported to this release in CXX-666:

MongoDB Legacy C++ Driver 1.1.0-rc0

17 Nov 16:09
Compare
Choose a tag to compare
Pre-release

This is a release candidate for the next minor version of the Legacy C++ driver, legacy-1.1, which will include support for the upcoming MongoDB 3.2 release.

This is an unstable release and is not suitable for production use. Testing is greatly appreciated! Bugs should be filed in the MongoDB C++ Driver JIRA Project.

To fully explore the new features identified below, you will need to install MongoDB 3.2-rc2 or newer.

The following tickets were resolved in this release candidate. Many of these tickets reflect new features associated with MongoDB 3.2.

Improvement

  • [CXX-657] - Use constant-time hash comparison functions

New Feature

  • [CXX-685] - Support Filtered (Partial) Indexes
  • [CXX-689] - Support bypassDocumentValidation
  • [CXX-692] - findAndModify take a write concern
  • [CXX-696] - Ensure spec compliance for unacknowledged write concerns.

Please note that support for the new read-committed isolation level added in MongoDB 3.2 is not being implemented in the legacy C++ driver.