Создаёт новый объект BulkWriteCommand

# MongoDB\Driver\BulkWriteCommand::__construct

(mongodb >=2.1.0)

MongoDB\Driver\BulkWriteCommand::__construct — Создаёт новый объект BulkWriteCommand

### Описание

public function MongoDB\Driver\BulkWriteCommand::__construct(?array `$options` = `null`)

Метод создаёт новый объект класса MongoDB\Driver\BulkWriteCommand для выполнения множественных операций вставки, обновления и удаления на наборе коллекций в одном запросе через команду » bulkWrite, которая появилась в MongoDB 8.0. Тогда как класс MongoDB\Driver\BulkWrite поддерживается всеми версиями серверов, но ограничивается одной коллекцией.

После добавления операций записи объект выполняют методом MongoDB\Driver\Manager::executeBulkWriteCommand().

### Список параметров

`options` (array)

  Опции
  Опция | Тип | Описание | Стандартное значение
  --- | --- | --- | ---
  bypassDocumentValidation | bool | Со значением `true` разрешает операции вставки и обновления для обхода проверки на уровне документа. | `false`
  comment | mixed | Произвольный комментарий, который помогает отслеживать операцию в профилировщике базы данных, выводе команды currentOp и логах.
  let | array|object | Карта имён и значений параметров. Значения должны быть константами или закрытыми выражениями, которые не ссылаются на поля документа. К параметрам можно обращаться как к переменным в контексте агрегированного выражения (например, `$$var`). Опция доступна в MongoDB 5.0+ и приведёт к исключению во время выполнения, если указана для более старой версии сервера.
  ordered | bool | Требуется ли выполнять операции текущей массовой записи в порядке добавления. Со значением `false` выполнение операций записи продолжится, если возникнет ошибка отдельной записи. Со значением `true` выполнение операции записи прекратится, если возникнет ошибка отдельной записи. | `true`
  verboseResults | bool | Требуется ли включать подробные результаты о каждой успешной операции в данные, которые возвращает класс MongoDB\Driver\BulkWriteCommandResult. | `false`

### Ошибки

- При ошибке парсинга аргумента метод выбрасывает исключение MongoDB\Driver\Exception\InvalidArgumentException.

### Примеры

Пример #1 Пример создания методом MongoDB\Driver\BulkWriteCommand::__construct() команды для множественных операций записи

    <?php

    $manager = new MongoDB\Driver\Manager();

    $bulk = new MongoDB\Driver\BulkWriteCommand();

    // Удаление документов из обоих коллекций
    $bulk->deleteMany('db.coll_one', []);
    $bulk->deleteMany('db.coll_two', []);

    // Вставка документов в две коллекции
    $bulk->insertOne('db.coll_one', ['_id' => 1]);
    $bulk->insertOne('db.coll_two', ['_id' => 2]);
    $bulk->insertOne('db.coll_two', ['_id' => 3]);

    // Обновление документа в столбце "coll_one"
    $bulk->updateOne('db.coll_one', ['_id' => 1], ['$set' => ['x' => 1]]);

    $result = $manager->executeBulkWriteCommand($bulk);

    printf("Количество операций вставки документов: %d\n", $result->getInsertedCount());
    printf("Количество операций обновления документов: %d\n", $result->getModifiedCount());

    ?>

Результат выполнения приведённого примера:

    Количество операций вставки документов: 3
    Количество операций обновления документов: 1

### Смотрите также

- MongoDB\Driver\Manager::executeBulkWriteCommand() - Выполняет операции записи через команду bulkWrite
- MongoDB\Driver\BulkWriteCommandResult

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open