mongoc_database_command_with_opts()

Synopsis

bool
mongoc_database_command_with_opts (
   mongoc_database_t *database,
   const bson_t *command,
   const mongoc_read_prefs_t *read_prefs,
   const bson_t *opts,
   bson_t *reply,
   bson_error_t *error);

Execute a command on the server, interpreting opts according to the MongoDB server version. To send a raw command to the server without any of this logic, use mongoc_client_command_simple().

Read preferences, read and write concern, and collation can be overridden by various sources. The highest-priority sources for these options are listed first:

Read Preferences Read Concern Write Concern Collation
read_prefs opts opts opts
Transaction Transaction Transaction  

In a transaction, read concern and write concern are prohibited in opts and the read preference must be primary or NULL. See the example for transactions and for the “distinct” command with opts.

reply is always initialized, and must be freed with bson_destroy().

This function is not considered a retryable read operation.

Parameters

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

Consult the MongoDB Manual entry on Database Commands for each command’s arguments.

Errors

Errors are propagated via the error parameter.

Returns

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

The reply is not parsed for a write concern timeout or write concern error.

Example

See the example code for mongoc_client_read_command_with_opts().