mongoc_client_command_with_opts()

Synopsis

bool
mongoc_client_command_with_opts (
   mongoc_client_t *client,
   const char *db_name,
   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  
client      

See the example for transactions and for the “distinct” command with opts.

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

Parameters

  • client: A mongoc_client_t.
  • db_name: The name of the database to run the command on.
  • command: A bson_t containing the command specification.
  • read_prefs: An optional mongoc_read_prefs_t.
  • opts: A bson_t containing additional options.
  • reply: A location for the resulting document.
  • error: An optional location for a bson_error_t or NULL.

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().