MongoDB\Driver\BulkWrite::update

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::updateДобавить операцию обновления в порцию

Описание

public MongoDB\Driver\BulkWrite::update ( array|object $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|object

Массив документов фильтров, который определяет, какие элементы массива будут изменены для операции обновления в поле массива. См. » Указывайте arrayFilters для операций обновления массива в руководстве MongoDB для получения дополнительной информации.

Эта опция доступна с MongoDB 3.6+ и приведет к исключению во время выполнения, если она указан для более старой версии сервера.

collation array|object

» Сопоставление позволяет пользователям указывать специфичные для конкретного языка правила для сравнения строк, такие как реакцию на регистр букв и надстрочные знаки. Если задано сопоставление, то поле "locale" также обязательно. Описание полей смотрите в разделе » Сопоставление.

Если сопоставление не задано явно, но у коллекции определено сопоставление по умолчанию, то будет использовано оно. Если нет ни того ни того, то MongoDB будет использовать простое бинарное сравнение строк.

Эта опция доступна в MongoDB 3.4+ и, если будет использована для более старых версий, вызовет исключение во время исполнения.

multi boolean Обновить только первый найденный документ, если FALSE или все подходящие документы при TRUE. Эта опция не может быть TRUE, когда newObj - заменяющий документ. FALSE
upsert boolean Если filter не соответствует существующему документу, будет вставлен новый документ. Документ будет создан из newObj, если он заменяющий документ (т.е. отсутствуют операторы обновления); в противном случае операторы в newObj будут применяться к filter для создания нового документа. FALSE

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Список изменений

Версия Описание
1.6.0 Параметр newObj теперь принимает конвейер агрегации. Требуется MongoDB 4.2+, для более старой версии сервера выбросит исключение во время выполнения.
1.5.0 Использование опции "arrayFilters" приведет к исключению во время выполнения, если он не поддерживается сервером. Раньше не выбрасывалось исключение, и этот параметр, возможно, был проигнорирован.
1.4.0 Добавлена опция "arrayFilters".
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);

?>

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