• collection: A mongoc_collection_t.
• selector: A bson_t containing the query to match documents for updating.
• update: A bson_t containing the update to perform. If updating with a pipeline, a bson_t array.
• reply: A maybe-NULL pointer to overwritablestorage for a bson_t to contain the results.
• error: An optional location for a bson_error_t or NULL.
opts may be NULL or a BSON document with additional command options:
• writeConcern: Construct a mongoc_write_concern_t and use mongoc_write_concern_append() to add the write
concern to opts. See the example code for mongoc_client_write_command_with_opts().
• sessionId: First, construct a mongoc_client_session_t with mongoc_client_start_session(). You can begin
a transaction with mongoc_client_session_start_transaction(), optionally with a
mongoc_transaction_opt_t that overrides the options inherited from collection, and use
mongoc_client_session_append() to add the session to opts. See the example code for
mongoc_client_session_t.
• validate: Construct a bitwise-or of all desired bson_validate_flags_t. Set to false to skip client-side
validation of the provided BSON documents.
• comment: A bson_value_t specifying the comment to attach to this command. The comment will appear in
log messages, profiler output, and currentOp output. Requires MongoDB 4.4 or later.
• bypassDocumentValidation: Set to true to skip server-side schema validation of the provided BSON
documents.
• collation: Configure textual comparisons. See SettingCollationOrder, and theMongoDBManualentryonCollation. Collation requires MongoDB 3.2 or later, otherwise an error is returned.
• hint: A document or string that specifies the index to use to support the query predicate.
• upsert: When true, creates a new document if no document matches the query.
• let: A BSON document consisting of any number of parameter names, each followed by definitions of
constants in the MQL Aggregate Expression language.
• arrayFilters: An array of filters specifying to which array elements an update should apply.