(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
Опция | Тип | Описание | Значение по умолчанию |
---|---|---|---|
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);
?>