MongoDB\Driver\BulkWriteCommand::__construct

(mongodb >=2.1.0)

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

Описание

public 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

Ошибки

Примеры

Пример #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

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

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top