array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'mysql-xdevapi-collection.modify.php', 1 => 'Collection::modify', ), 'up' => array ( 0 => 'class.mysql-xdevapi-collection.php', 1 => 'mysql_xdevapi\\Collection', ), 'prev' => array ( 0 => 'mysql-xdevapi-collection.getsession.php', 1 => 'Collection::getSession', ), 'next' => array ( 0 => 'mysql-xdevapi-collection.remove.php', 1 => 'Collection::remove', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/mysql_xdevapi/mysql_xdevapi/collection/modify.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(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();
?>