# mongoc_collection_command_with_opts()¶

## Synopsis¶

bool
mongoc_collection_command_with_opts (
mongoc_collection_t *collection,
const bson_t *command,
const bson_t *opts,
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_prefs opts opts opts
Transaction Transaction Transaction
collection

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

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