(No version information available, might only be in Git)
CollectionModify::arrayInsert — Insere elemento em um array de campos
$collection_field
, string $expression_or_literal
): mysql_xdevapi\CollectionModifyAdiciona um elemento a um campo do documento, já que múltiplos documentos de um campo são representados como um array. Diferentemente de mysql_xdevapi\CollectionModify::arrayAppend() este método permite especificar onde o novo elemento é inserido definindo que item o precede, enquanto que mysql_xdevapi\CollectionModify::arrayAppend() sempre anexa o novo elemento no final do array.
collection_field
Identifica o item no array após o qual o novo elemento será inserido.
O formato deste parâmetro é
FIELD_NAME[ INDEX ]
onde
FIELD_NAME é o nome do campo do docuemtno
ao qual o elemento será adicionado, e INDEX
é o índice do elemento dentro do campo.
O campo INDEX inicia em zero, portanto o primeiro item do array tem um índice de 0.
expression_or_literal
O novo elemento a inserir após FIELD_NAME[ INDEX ]
Um objeto CollectionModify que pode ser usado para executar o comando, ou para inserir operações adicionais.
Exemplo #1 Exemplo 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());
?>
O exemplo acima produzirá algo semelhante a:
Array ( [0] => Array ( [_id] => 00005b6b5361000000000000010d [name] => Bernie [traits] => Array ( [0] => Friend [1] => Happy [2] => Brother [3] => Human ) ) )