(No version information available, might only be in Git)
CollectionModify::arrayInsert — Fügt ein Element in das Array eines Feldes ein
$collection_field
, string $expression_or_literal
): mysql_xdevapi\CollectionModifyFügt dem Feld eines Dokuments ein Element hinzu. Mehrere Elemente eines Feldes werden als Array dargestellt. Im Gegensatz zu arrayAppend(), wo das neue Element immer am Ende des Arrays angehängt wird, kann bei arrayInsert() die Position für ein neues Element angegeben werden.
collection_field
Bezeichnet das Element im Array, nach dem das neue Element eingefügt
wird. Das Format dieses Parameters ist
FIELD_NAME[ INDEX ]
, wobei FIELD_NAME der Name des
Dokumentfeldes ist, dem das Element hinzugefügt werden soll, und INDEX
der Index des Elements innerhalb des Feldes ist.
Das Feld INDEX ist nullbasiert, d. h. das erste Element des Arrays hat einen Index von 0.
expression_or_literal
Das neue Element, das nach FIELD_NAME[ INDEX ] eingefügt wird
Gibt ein CollectionModify-Objekt zurück, das verwendet werden kann, um den Befehl auszuführen oder um weitere Operationen hinzuzufügen.
Beispiel #1 mysql_xdevapi\CollectionModify::arrayInsert()-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");
$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());
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
Array ( [0] => Array ( [_id] => 00005b6b5361000000000000010d [name] => Bernie [traits] => Array ( [0] => Friend [1] => Happy [2] => Brother [3] => Human ) ) )