(No version information available, might only be in Git)
Collection::modify — Изменяет документы коллекции
Изменяет документы коллекции, соответствующие определённым условиям поиска.
search_condition
Параметр должен быть допустимым выражением SQL, используемым для
соответствия документам, которые нужно изменить. Это выражение может быть
простым значением true
, что соответствует всем документам, или
может использовать функции и операторы, такие как
'CAST(_id AS SIGNED) >= 10'
,
'age MOD 2 = 0 OR age MOD 3 = 0'
или
'_id IN ["2","5","7","10"]'
.
Если операция не выполнена, функция вернёт объект Modify, который можно использовать для добавления дополнительных операций MODIFY.
Если операция MODIFY выполнена, то возвращаемый объект будет содержать результат операции.
Пример #1 Пример использования mysql_xdevapi\Collection::modify()
<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");
$collection->add('{"name": "Альфред", "age": 18, "job": "Дворецкий"}')->execute();
$collection->add('{"name": "Боб", "age": 19, "job": "Художник"}')->execute();
// Добавление двух работ для всех художников: артист и мастер
$collection
->modify("job in ('Дворецкий', 'Художник')")
->arrayAppend('job', 'Артист')
->arrayAppend('job', 'Мастер')
->execute();
// Удаление поля 'beer' из всех документов с возрастом 21
$collection
->modify('age < 21')
->unset(['beer'])
->execute();
?>