MongoDB\Driver\BulkWrite::update
(mongodb >=1.0.0)
MongoDB\Driver\BulkWrite::update — Добавить операцию обновления в порцию
Описание
$filter
, array|object $newObj
, array $updateOptions = ?
) : voidДобавляет операцию обновления в MongoDB\Driver\BulkWrite.
Список параметров
-
filter(array|object) -
» Предикат запроса. Пустой предикат совпадет со всеми элементами коллекции.
Замечание: При вычислении критериев запроса, MongoDB сравнивает типы и значения в соответствии с собственными » правилами сравнения типов BSON, отличных от правил сравнения и приведения типов PHP. Когда истользуется специальный тип BSON, критерия запроса должна соответствовать классу BSON (т.е. использовать MongoDB\BSON\ObjectId для выборке по » ObjectId).
-
newObj(array|object) -
Документ, содержащий операторы обновления (например,
$set), заменяющий документ (например, только выраженияfield:value) или » конвейер агрегации. -
updateOptions -
updateOptions Опция Тип Описание Значение по умолчанию arrayFilters array Массив документов фильтров, который определяет, какие элементы массива будут изменены для операции обновления в поле массива. Смотрите » Указывайте arrayFilters для операций обновления массива в руководстве MongoDB для получения дополнительной информации.
Опция доступна с MongoDB 3.6+ и приведет к исключению во время выполнения, если она указан для более старой версии сервера.
collation array|object » Сопоставление позволяет пользователям указывать специфичные для конкретного языка правила для сравнения строк, такие как реакцию на регистр букв и надстрочные знаки. Если задано сопоставление, то поле
"locale"также обязательно. Описание полей смотрите в разделе » Сопоставление.Если сопоставление не задано явно, но у коллекции определено сопоставление по умолчанию, то будет использовано оно. Если нет ни того ни того, то MongoDB будет использовать простое бинарное сравнение строк.
Эта опция доступна в MongoDB 3.4+ и, если будет использована для более старых версий, вызовет исключение во время исполнения.
hint string|array|object Индекс спецификации. Укажите либо имя индекса в виде строки, либо шаблон ключа индекса. Если указано, то система запросов будет рассматривать планы только с использованием индекса подсказок.
Опция доступна с MongoDB 4.4+ и приведет к исключению во время выполнения, если она указан для более старой версии сервера.
multi bool Обновить только первый найденный документ, если falseили все подходящие документы приtrue. Эта опция не может бытьtrue, когдаnewObj- заменяющий документ.falseupsert bool Если filterне соответствует существующему документу, будет вставлен новый документ. Документ будет создан изnewObj, если он заменяющий документ (т.е. отсутствуют операторы обновления); в противном случае операторы вnewObjбудут применяться кfilterдля создания нового документа.false
Возвращаемые значения
Эта функция не возвращает значения после выполнения.
Ошибки
- При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
Список изменений
| Версия | Описание |
|---|---|
| PECL mongodb 1.7.0 |
Добавлена опция "hint".
|
| PECL mongodb 1.6.0 |
Параметр newObj теперь принимает конвейер
агрегации. Требуется MongoDB 4.2+, для более
старой версии сервера выбросит
исключение во время выполнения.
|
| PECL mongodb 1.5.0 |
Использование опции "arrayFilters" приведет к исключению во время выполнения,
если она не поддерживается сервером.
Раньше не выбрасывалось исключение, и этот параметр, возможно, был проигнорирован.
|
| PECL mongodb 1.4.0 |
Добавлена опция "arrayFilters".
|
| PECL mongodb 1.2.0 |
Добавлена опция "collation".
|
Примеры
Пример #1 Пример использования MongoDB\Driver\BulkWrite::update()
<?php
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->update(
['x' => 2],
['$set' => ['y' => 3]],
['multi' => false, 'upsert' => false]
);
$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$result = $manager->executeBulkWrite('db.collection', $bulk);
?>
Смотрите также
- MongoDB\Driver\Manager::executeBulkWrite() - Выполняет одну или несколько операций записи
- MongoDB\Driver\WriteResult