CollectionModify::arrayInsert

(无版本信息可用,可能只在 Git 中)

CollectionModify::arrayInsert将元素插入数组字段

描述

public mysql_xdevapi\CollectionModify::arrayInsert(string $collection_field, string $expression_or_literal): mysql_xdevapi\CollectionModify

将元素添加到文档的字段中,因为字段的多个元素表示为数组。与 mysql_xdevapi\CollectionModify::arrayAppend() 不同,此方法允许通过定义新元素之后的项目来指定新元素插入的位置,而 mysql_xdevapi\CollectionModify::arrayAppend() 始终将新元素追加到数组的末尾。

参数

collection_field

标识将在其后插入新元素的数组中的项目。此参数的格式为 FIELD_NAME[ INDEX ],其中 FIELD_NAME 是要添加元素的文档字段的名称,而 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
                )
        )
)
添加注释

用户贡献注释

此页面没有用户贡献的注释。
To Top