# mongoc_bulk_operation_execute()

## Synopsis

    uint32_t
    mongoc_bulk_operation_execute (mongoc_bulk_operation_t *bulk,
                                   bson_t                  *reply,
                                   bson_error_t            *error);

This function executes all operations queued into the bulk operation. If ordered was specified to mongoc_collection_create_bulk_operation(), then forward progress will be stopped upon the first error.

It is only valid to call mongoc_bulk_operation_execute() once. The mongoc_bulk_operation_t must be destroyed afterwards.

reply is always initialized, even upon failure. Callers must call bson_destroy() to release this potential allocation.

## Parameters

bulk | A mongoc_bulk_operation_t.
reply | A bson_t.
error | An optional location for a bson_error_t or NULL.

## Errors

Errors are propagated via the error parameter.

## Returns

A non-zero hint of the peer node on success, otherwise 0 and error is set.

The reply document counts operations and collects error information. See Bulk Write Operations for examples.