(No version information available, might only be in Git)
CollectionModify::arrayInsert — Insère un élément dans un champ de tableau
$collection_field
, string $expression_or_literal
): mysql_xdevapi\CollectionModifyAjoute un élément à un champ d'un document, car plusieurs éléments d'un champ sont représentés sous forme de tableau. Contrairement à mysql_xdevapi\CollectionModify::arrayAppend() cette méthode permet de spécifier où le nouvel élément est inséré en définissant après quel élément, alors que mysql_xdevapi\CollectionModify::arrayAppend() ajoute toujours le nouvel élément à la fin du tableau.
collection_field
Identifie l'élément du tableau après lequel le nouvel élément sera inséré.
Le format de ce paramètre est
FIELD_NAME[ INDEX ]
où
FIELD_NAME est le nom du champ du document
où ajouter l'élément, et INDEX
est l'INDEX de l'élément dans le champ.
L'INDEX est basé sur zéro, donc le premier élément du tableau a un index de 0.
expression_or_literal
Le nouvel élément à insérer après FIELD_NAME[ INDEX ]
Un objet CollectionModify qui peut être utilisé pour exécuter la commande, ou pour ajouter des opérations supplémentaires.
Exemple #1 Exemple de mysql_xdevapi\CollectionModify::arrayInsert()
<?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");
$result = $collection
->add(
'{"name": "Bernie",
"traits": ["Friend", "Brother", "Human"]}')
->execute();
$collection
->modify("name in ('Bernie', 'Jane')")
->arrayInsert('traits[1]', 'Happy')
->execute();
$result = $collection
->find()
->execute();
print_r($result->fetchAll());
?>
Résultat de l'exemple ci-dessus est similaire à :
Array ( [0] => Array ( [_id] => 00005b6b5361000000000000010d [name] => Bernie [traits] => Array ( [0] => Friend [1] => Happy [2] => Brother [3] => Human ) ) )