MySQL and PHP
Copyright 1997-2021 the PHP Documentation Group.
Collection::modify
Modify collection documents
public mysql_xdevapi\CollectionModify mysql_xdevapi\Collection::modify(string search_condition);
Modify collections that meet specific search conditions. Multiple operations are allowed, and parameter binding is supported.
search_condition
Must be a valid SQL expression used to match the documents
to modify. This expression might be as simple as
true
, which matches all documents, or
it might use functions and operators such as
'CAST(_id AS SIGNED) >= 10'
,
'age MOD 2 = 0 OR age MOD 3 = 0'
,
or '_id IN
["2","5","7","10"]'
.
If the operation is not executed, then the function will return a Modify object that can be used to add additional modify operations.
If the modify operation is executed, then the returned object will contain the result of the operation.
Example 5.23 mysql_xdevapi\Collection::modify
example
<?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": "Alfred", "age": 18, "job": "Butler"}')->execute(); $collection->add('{"name": "Bob", "age": 19, "job": "Painter"}')->execute(); // Add two new jobs for all Painters: Artist and Crafter $collection ->modify("job in ('Butler', 'Painter')") ->arrayAppend('job', 'Artist') ->arrayAppend('job', 'Crafter') ->execute(); // Remove the 'beer' field from all documents with the age 21 $collection ->modify('age < 21') ->unset(['beer']) ->execute(); ?>