CollectionModify::arrayInsert
(No version information available, might only be in Git)
CollectionModify::arrayInsert — Добавляет элемент в поле массива
Описание
$collection_field
, string $expression_or_literal
) : mysql_xdevapi\CollectionModifyДобавляет элемент в поле документа, когда несколько элементов поля представляются в виде массива. В отличие от arrayAppend(), arrayInsert() позволяет вам указать, куда добавится новый элемент, определяя, за каким элементом он следует, тогда как arrayAppend() всегда добавляет новый элемент в конец массива.
Список параметров
-
collection_field -
Определите элемент в массиве, после которого добавится новый элемент. Формат этого параметра:
FIELD_NAME[ INDEX ], где FIELD_NAME - это имя поля документа, из которого удаляется элемент, а INDEX - это INDEX элемента в поле.Поле INDEX основано на нуле, поэтому самый левый элемент массива имеет индекс 0.
-
expression_or_literal -
Новый элемент для добавления после FIELD_NAME[ INDEX ]
Возвращаемые значения
Объект CollectionModify, который можно использовать для выполнения команды или для добавления дополнительных операций.
Примеры
Пример #1 Пример использования 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());
?>
Результатом выполнения данного примера будет что-то подобное:
Array
(
[0] => Array
(
[_id] => 00005b6b5361000000000000010d
[name] => Bernie
[traits] => Array
(
[0] => Friend
[1] => Happy
[2] => Brother
[3] => Human
)
)
)