(No version information available, might only be in Git)
Collection::modify — Modifie les documents de la collection
Modifie les documents d'une collection qui répondent à des conditions de recherche spécifiques. Plusieurs opérations sont autorisées, et la liaison de paramètres est supportée.
search_condition
Doit être une expression SQL valide utilisée pour faire correspondre les documents à modifier.
Cette expression peut être aussi simple que true
, qui correspond à tous les
documents, ou elle peut utiliser des fonctions et des opérateurs tels que
'CAST(_id AS SIGNED) >= 10'
,
'age MOD 2 = 0 OR age MOD 3 = 0'
, ou
'_id IN ["2","5","7","10"]'
.
SI l'opération n'est pas exécutée, alors la fonction retournera un objet Modify qui peut être utilisé pour ajouter des opérations de modification supplémentaires.
Si l'opération de modification est exécutée, alors l'objet retourné contiendra le résultat de l'opération.
Exemple #1 Exemple de 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": "Alfred", "age": 18, "job": "Butler"}')->execute();
$collection->add('{"name": "Bob", "age": 19, "job": "Painter"}')->execute();
// Ajoute deux nouveaux jobs pour tous les Painters: Artist et Crafter
$collection
->modify("job in ('Butler', 'Painter')")
->arrayAppend('job', 'Artist')
->arrayAppend('job', 'Crafter')
->execute();
// Enlève le champ 'beer' de tous les documents avec l'âge 21
$collection
->modify('age < 21')
->unset(['beer'])
->execute();
?>