MongoDB C++ Driver v4.0 Release Notes

Release Date: 2018-10-15 // about 1 year ago
  • 🚀 This is the first stable release in the mongocxx 3.4 series.

    🚀 This release provides support for new features MongoDB 4.0 (most notably transactions) as well as command monitoring and SDAM monitoring.

    Please note that this version of mongocxx requires the MongoDB C driver 1.13.0.

    👀 See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    🚀 NOTE: The mongocxx 3.4.x series does not promise API or ABI stability across patch releases.

    Here is the full list of user-visible issues that have been resolved in 3.4.0 since the prior 3.3 series:

    🆕 New Feature

    • [CXX-1385] - Add API for subscribing to SDAM events
    • [CXX-1386] - Implement command monitoring API
    • [CXX-1433] - Implement Database Enumeration spec
    • 👍 [CXX-1478] - Support ReplaceOptions in CRUD API
    • [CXX-1505] - Implement SASLPrep
    • 👍 [CXX-1509] - SCRAM-SHA-256 Support
    • [CXX-1531] - Implement Transactions spec
    • [CXX-1538] - Delete public bulk_write constructor
    • [CXX-1541] - Handshake changes for SDAM and Auth
    • [CXX-1558] - Remove collection::bulk_write(bulk_write&)
    • ⚡️ [CXX-1559] - Update SCRAM-SHA-256 implementation and tests for spec change
    • 👍 [CXX-1582] - Support nameOnly option in listCollections command
    • [CXX-1584] - Add helpers and options for Change Streams Follow-on Work
    • 🚚 [CXX-1585] - Remove MD5 from ObjectID generation
    • [CXX-1592] - Add MongoDB 4.0 to the Evergreen matrix
    • [CXX-1594] - Implement new count API
    • 🚚 [CXX-1616] - Remove equality/inequality operators from options classes
    • ✅ [CXX-1622] - Test only the initial command in a transaction includes readConcern
    • 👍 [CXX-1639] - Support new readConcern level "available"
    • [CXX-1658] - Generate C Driver version number when installing

    🐛 Bug

    • [CXX-1595] - GNU 4.9.3: 'max_align_t' was not declared
    • [CXX-1625] - Android NDK r17 compiler error
    • 0️⃣ [CXX-1626] - CRUD operations set ordered to false by default
    • [CXX-1638] - Don't call string_view::to_string

    👌 Improvement

    • [CXX-1499] - Don't access bson_iter_t internals
    • [CXX-1500] - document::view::find should use bson_iter...w_len functions
    • 🗄 [CXX-1528] - Deprecate snapshot option
    • ✅ [CXX-1562] - Port session tests to mongocxx command monitoring API
    • ✅ [CXX-1573] - Spec tests should use the same format for bulk writes
    • [CXX-1577] - Flexible collection creation
    • 🚚 [CXX-1578] - Remove options::aggregate::use_cursor
    • ✅ [CXX-1580] - Log backtraces in test failures on Evergreen
    • [CXX-1586] - Add user commands to list of commands that write
    • [CXX-1591] - Only send bypassDocumentValidation if it's true
    • [CXX-1596] - Use mongoc_cursor_new_from_command_reply_with_opts
    • ⚡️ [CXX-1601] - Update ChangeStream spec to detail usage of startAtOperationTime
    • 🗄 [CXX-1620] - Migrate from functions deprecated in libmongoc 1.12
    • [CXX-1651] - Rewrite "Contributing" page
    • 🚚 [CXX-1653] - Remove database::modify_collection
    • [CXX-1657] - Require libbson and libmongoc 1.13.0
    • ⚠ [CXX-1660] - Fix doxygen warnings
    • 📚 [CXX-1666] - improve documentation of element::bool()

Previous changes from v3.1

  • 🚀 This release provides bug fixes since r3.3.0.

    Please note that this version of mongocxx requires the MongoDB C driver 1.10.1.

    👀 See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    🚀 NOTE: The mongocxx 3.3.x series does not promise API or ABI stability across patch releases.

    🐛 Bug

    • [CXX-1614] - Client constructed with independently defined SSL options always crashes