# mongoc_database_command()

## Synopsis

    mongoc_cursor_t *
    mongoc_database_command (mongoc_database_t *database,
                             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);

This function is superseded by mongoc_database_command_with_opts(), mongoc_database_read_command_with_opts(), mongoc_database_write_command_with_opts(), and mongoc_database_read_write_command_with_opts().

## Description

This function creates a cursor which will execute the command when mongoc_cursor_next() is called on it. The database’s read preference, read concern, and write concern are not applied to the command, and mongoc_cursor_next() will not check the server response for a write concern error or write concern timeout.

This function is not considered a retryable read operation.

## Parameters

- `database`: A mongoc_database_t.
- `flags`: A mongoc_query_flags_t.
- `skip`: The number of documents to skip on the server.
- `limit`: The maximum number of documents to return from the cursor.
- `batch_size`: Attempt to batch results from the server in groups of `batch_size` documents.
- `command`: A `bson_t` containing the command.
- `fields`: An optional `bson_t` containing the fields to return. `NULL` for all fields.
- `read_prefs`: An optional mongoc_read_prefs_t. Otherwise, the command uses mode `MONGOC_READ_PRIMARY`.

## Returns

A mongoc_cursor_t.

The cursor should be freed with mongoc_cursor_destroy().