(mongodb >=2.1.0)
MongoDB\Driver\BulkWriteCommand::__construct — Создаёт новый объект BulkWriteCommand
Метод создаёт новый объект класса MongoDB\Driver\BulkWriteCommand для выполнения множественных операций вставки, обновления и удаления на наборе коллекций в одном запросе через команду » bulkWrite, которая появилась в MongoDB 8.0. Тогда как класс MongoDB\Driver\BulkWrite поддерживается всеми версиями серверов, но ограничивается одной коллекцией.
После добавления операций записи объект выполняют методом MongoDB\Driver\Manager::executeBulkWriteCommand().
options (array)
| Опция | Тип | Описание | Стандартное значение | 
|---|---|---|---|
| bypassDocumentValidation | bool | 
            Со значением  | false | 
| comment | mixed | Произвольный комментарий, который помогает отслеживать операцию в профилировщике базы данных, выводе команды currentOp и логах. | |
| let | array|object | 
            Карта имён и значений параметров. Значения должны быть константами или закрытыми выражениями, которые не ссылаются на поля документа. К параметрам можно обращаться как к переменным в контексте агрегированного выражения (например,  Опция доступна в MongoDB 5.0+ и приведёт к исключению во время выполнения, если указана для более старой версии сервера. | |
| ordered | bool | 
            Требуется ли выполнять операции текущей массовой записи
            в порядке добавления. Со значением  | true | 
| verboseResults | bool | Требуется ли включать подробные результаты о каждой успешной операции в данные, которые возвращает класс MongoDB\Driver\BulkWriteCommandResult. | false | 
Пример #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
