(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 CollectionModify::arrayAppend(), wo das neue Element immer am Ende des Arrays angehängt wird, kann bei dieser Methode 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 ) ) )