mongoc_collection_replace_one (mongoc_collection_t *collection,
                               const bson_t *selector,
                               const bson_t *replacement,
                               const bson_t *opts,
                               bson_t *reply,
                               bson_error_t *error);


If not NULL, reply is always initialized, even upon failure. Callers must call bson_destroy() to release this potential allocation.


  • collection: A mongoc_collection_t.
  • selector: A bson_t containing the query to match the document for updating.
  • replacement: A bson_t containing the replacement document.
  • opts: A bson_t containing additional options or NULL.
  • reply: Optional. An uninitialized bson_t populated with the update result, or NULL.
  • error: An optional location for a bson_error_t or NULL.

opts may be NULL or a BSON document with additional command options:


This function shall replace documents in collection that match selector with replacement.

If you pass a non-NULL reply, it is filled out with fields “modifiedCount” and “matchedCount”. If there is a server error then reply contains either a “writeErrors” array with one subdocument or a “writeConcernErrors” array. The reply must be freed with bson_destroy().


Errors are propagated via the error parameter.


Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

A write concern timeout or write concern error is considered a failure.

If provided, reply will be initialized and populated with the fields matchedCount, modifiedCount, and optionally upsertedId if applicable.