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
- заменяющий документ.false
upsert 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