(No version information available, might only be in Git)
Collection::modify — Ändert Dokumente einer Sammlung
Ändert die Dokumente einer Sammlung, die bestimmte Suchbedingungen erfüllen. Es sind mehrere Operationen möglich und die Bindung von Parametern wird unterstützt.
search_condition
Muss ein gültiger SQL-Ausdruck sein, der zum Abgleich der zu ändernden
Dokumente verwendet wird. Ein solcher Ausdruck kann ein einfaches true
sein, das auf alle Dokumente zutrifft, oder er kann Funktionen und
Operatoren verwenden wie
'CAST(_id AS SIGNED) >= 10'
,
'age MOD 2 = 0 OR age MOD 3 = 0'
oder
'_id IN ["2","5","7","10"]'
.
Wenn die Operation nicht ausgeführt wird, gibt die Funktion ein Modify-Objekt zurück, dem weitere Änderungsoperationen hinzugefügt werden können.
Wird die Operation ausgeführt, dann enthält das zurückgegebene Objekt das Ergebnis der Operation.
Beispiel #1 mysql_xdevapi\Collection::modify()-Beispiel
<?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();
// Hinzufügen von zwei neuen Jobs für alle Painter: Artist und Crafter
$collection
->modify("job in ('Butler', 'Painter')")
->arrayAppend('job', 'Artist')
->arrayAppend('job', 'Crafter')
->execute();
// Entfernen des Feldes 'beer' aus allen Dokumenten mit 'age < 21'
$collection
->modify('age < 21')
->unset(['beer'])
->execute();
?>