Morecambe Bay

I've just released a beta of the MongoDB C driver 1.3.0, with support for new features in the upcoming MongoDB 3.2. The driver is compatible with MongoDB 2.4 and later. Please try it out and file a ticket in Jira if you see any issues.

Links:

New features and changes:

  • mongoc_collection_find_and_modify will now apply the mongoc_collection_t's write_concern_t when talking to MongoDB 3.2.
  • Support for MongoDB 3.2's "readConcern" feature for queries, counts, and aggregations. The option "readConcernLevel" is now accepted in the MongoDB URI. New struct mongoc_read_concern_t, and functions operating on it:
    • mongoc_client_get_read_concern
    • mongoc_client_set_read_concern
    • mongoc_database_get_read_concern
    • mongoc_database_set_read_concern
    • mongoc_collection_get_read_concern
    • mongoc_collection_set_read_concern
    • mongoc_read_concern_copy
    • mongoc_read_concern_destroy
    • mongoc_read_concern_get_level
    • mongoc_read_concern_new
    • mongoc_read_concern_set_level
    • mongoc_uri_get_read_concern
  • Support for MongoDB 3.2's "bypassDocumentValidation" option for writes.
  • New struct mongoc_bulk_write_flags_t and related functions:
    • mongoc_bulk_operation_set_bypass_document_validation
    • mongoc_bulk_operation_set_flags
  • New struct mongoc_find_and_modify_opts_t and related functions:
    • mongoc_find_and_modify_opts_new
    • mongoc_find_and_modify_opts_destroy
    • mongoc_find_and_modify_opts_set_sort
    • mongoc_find_and_modify_opts_set_update
    • mongoc_find_and_modify_opts_set_fields
    • mongoc_find_and_modify_opts_set_flags
    • mongoc_find_and_modify_opts_set_bypass_document_validation
    • mongoc_collection_find_and_modify_with_opts
  • Configurable wait time on tailable cursors with MongoDB 3.2:
    • mongoc_cursor_get_max_await_time_ms
    • mongoc_cursor_set_max_await_time_ms
  • Support for MongoDB 3.2 wire protocol: use commands in place of OP_QUERY, OP_GETMORE, and OP_KILLCURSORS messages.
  • To explain a query plan with MongoDB 3.2, you must now call the "explain" command, instead of including the "$explain" key in a mongoc_collection_find query. See the mongoc_collection_find documentation page for details.
  • Use constant-time comparison when verifying credentials
  • Combine environment's CFLAGS with configure options when building.
  • Improved man page output and "whatis" entries

Extensive bugfixes and improvements in GridFS, including:

  • Handle seeking, reading, and writing past the end of a GridFS file.
  • Better error reporting if a GridFS file has missing chunks.
  • Optimization for long seeks forward with mongoc_gridfs_file_seek.

Other fixes:

  • Potential crash in bson_strncpy on Windows.
  • Memory leak in mongoc_database_find_collections.
  • Set OP_QUERY's nToReturn from the provided limit.
  • Fix compiler warnings and errors, especially with Visual Studio 2015, GCC 4.8, and IBM XL C.
  • Include missing build script FindSASL2.cmake in distribution tarball
  • Bugs and typos in tutorial examples

Thanks to everyone who contributed to this release.

  • A. Jesse Jiryu Davis
  • Hannes Magnusson
  • Kyle Suarez
  • Matt Cotter
  • Jose Sebastian Battig
  • Jeremy Mikola
  • Iago Rubio
  • alexeyvo
  • Jeroen Ooms
  • Petr Písař
  • xpol

Image: Clive Varley