# mongoc_collection_create_bulk_operation_with_opts()

## Synopsis

    mongoc_bulk_operation_t *
    mongoc_collection_create_bulk_operation_with_opts (
       mongoc_collection_t *collection,
       const bson_t *opts) BSON_GNUC_WARN_UNUSED_RESULT;

## Parameters

- `collection`: A mongoc_collection_t.

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

- `writeConcern`: Construct a mongoc_write_concern_t and use mongoc_write_concern_append() to add the write concern to `opts`. See the example code for mongoc_client_write_command_with_opts().

- `ordered`: set to `false` to attempt to insert all documents, continuing after errors.

- `sessionId`: First, construct a mongoc_client_session_t with mongoc_client_start_session(). You can begin a transaction with mongoc_client_session_start_transaction(), optionally with a mongoc_transaction_opt_t that overrides the options inherited from `collection`, and use mongoc_client_session_append() to add the session to `opts`. See the example code for mongoc_client_session_t.

- `let`: A BSON document consisting of any number of parameter names, each followed by definitions of constants in the MQL Aggregate Expression language.

- `comment`: A `bson_value_t` specifying the comment to attach to this command. The comment will appear in log messages, profiler output, and currentOp output. Requires MongoDB 4.4 or later.

## Description

This function shall begin a new bulk operation. After creating this you may call various functions such as mongoc_bulk_operation_update(), mongoc_bulk_operation_insert() and others.

After calling mongoc_bulk_operation_execute() the commands will be executed in as large as batches as reasonable by the client.

## Errors

Errors are propagated when executing the bulk operation.

## Returns

A newly allocated mongoc_bulk_operation_t that should be freed with mongoc_bulk_operation_destroy() when no longer in use.

Warning

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

See also

Bulk Write Operations
mongoc_bulk_operation_t