# mongoc_collection_command()

## Synopsis

    mongoc_cursor_t *
    mongoc_collection_command (mongoc_collection_t *collection,
                               mongoc_query_flags_t flags,
                               uint32_t skip,
                               uint32_t limit,
                               uint32_t batch_size,
                               const bson_t *command,
                               const bson_t *fields,
                               const mongoc_read_prefs_t *read_prefs)
       BSON_GNUC_WARN_UNUSED_RESULT;

This function is superseded by mongoc_collection_command_with_opts(), mongoc_collection_read_command_with_opts(), mongoc_collection_write_command_with_opts(), and mongoc_collection_read_write_command_with_opts().

This function is not considered a retryable read operation.

## Parameters

- `collection`: A mongoc_collection_t.

- `flags`: A mongoc_query_flags_t.

- `skip`: A uint32_t with the number of documents to skip or zero.

- `limit`: A uint32_t with the max number of documents to return or zero.

- `batch_size`: A uint32_t with the number of documents in each batch or zero. Default is 100.

- `command`: A `bson_t` containing the command to execute.

- `fields`: A `bson_t` containing the fields to return or `NULL`. Not all commands support this option.

- `read_prefs`: An optional mongoc_read_prefs_t. Otherwise, the command uses mode `MONGOC_READ_PRIMARY`.

## Returns

This function returns a newly allocated mongoc_cursor_t that should be freed with mongoc_cursor_destroy() when no longer in use. The returned mongoc_cursor_t is never `NULL`, even on error. The user must call mongoc_cursor_next() on the returned mongoc_cursor_t to execute the initial command.

Cursor errors can be checked with mongoc_cursor_error_document(). It always fills out the `bson_error_t` if an error occurred, and optionally includes a server reply document if the error occurred server-side.

Warning

Failure to handle the result of this function is a programming error.