(mongodb >=1.0.0)
MongoDB\Driver\BulkWrite::__construct — Создаёт новый объект BulkWrite
Создаёт новый MongoDB\Driver\BulkWrite, который является изменяемым объектом, к которому могут быть добавлены одна и несколько операций записи. Операции записи могут быть выполнены с помощью MongoDB\Driver\Manager::executeBulkWrite().
options (array)
| Опция | Тип | Описание | Значение по умолчанию | 
|---|---|---|---|
| bypassDocumentValidation | bool | 
            Если  Этот параметр доступен в MongoDB 3.2+ и игнорируется в более старых версиях сервера, которые не поддерживают проверку уровня сервера. | false | 
| comment | mixed | Произвольный комментарий, помогающий отследить операцию с помощью профилировщика базы данных, вывода CurrentOp и журналов. Опция доступна в MongoDB 4.4+ и приведёт к исключению во время выполнения, если указана для более старой версии сервера. | |
| let | array|object | 
            Карта имён и значений параметров. Значения должны быть константами или закрытыми выражениями, которые не ссылаются на поля документа. К параметрам можно обращаться как к переменным в контексте агрегированного выражения (например,  Опция доступна в MongoDB 5.0+ и приведёт к исключению во время выполнения, если указана для более старой версии сервера. | |
| ordered | bool | Отсортированные операции ( true) выполняется последовательно на сервере MongoDB,
           тогда как неотсортированные операции (false) отправляются на сервере
           в произвольном порядке и могут выполняться параллельно. | true | 
| Версия | Описание | 
|---|---|
| PECL mongodb 1.14.0 | Добавлены опции "comment"и"let". | 
| PECL mongodb 1.1.0 | Добавлена опция "bypassDocumentValidation". | 
Пример #1 Пример использования MongoDB\Driver\BulkWrite::__construct()
<?php
$bulk = new MongoDB\Driver\BulkWrite(['ordered' => true]);
$bulk->delete([]);
$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);
$bulk->update(
    ['x' => 2],
    ['$set' => ['x' => 1]],
    ['limit' => 1, 'upsert' => false]
);
$bulk->delete(['x' => 1], ['limit' => 1]);
$bulk->update(
    ['_id' => 3],
    ['$set' => ['x' => 3]],
    ['limit' => 1, 'upsert' => true]
);
$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(1);
try {
    $result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
    $result = $e->getWriteResult();
    // Проверяем обеспечение гарантии записи
    if ($writeConcernError = $result->getWriteConcernError()) {
        printf("%s (%d): %s\n",
            $writeConcernError->getMessage(),
            $writeConcernError->getCode(),
            var_export($writeConcernError->getInfo(), true)
        );
    }
    // Проверяем, если какие-либо операции записи не были выполнены
    foreach ($result->getWriteErrors() as $writeError) {
        printf("Operation#%d: %s (%d)\n",
            $writeError->getIndex(),
            $writeError->getMessage(),
            $writeError->getCode()
        );
    }
} catch (MongoDB\Driver\Exception\Exception $e) {
    printf("Другая ошибка: %s\n", $e->getMessage());
    exit;
}
printf("Добавлено %d документ(ов)\n", $result->getInsertedCount());
printf("Обновлено  %d документ(ов)\n", $result->getModifiedCount());
printf("Слито %d документ(ов)\n", $result->getUpsertedCount());
printf("Удалено  %d документ(ов)\n", $result->getDeletedCount());
?>Результат выполнения приведённого примера:
Добавлено 2 документ(ов) Обновлено 1 документ(ов) Слито 1 документ(ов) Удалено 1 документ(ов)
