Bulgaria PHP Conference 2019

CollectionModify::arrayInsert

(No version information available, might only be in Git)

CollectionModify::arrayInsertДобавляет элемент в поле массива

Описание

public mysql_xdevapi\CollectionModify::arrayInsert ( string $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
                )
        )
)
add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top