Collection::add

(사용 가능한 버전 정보가 없으며 Git에만 있을 수 있음)

Collection::add — 컬렉션 문서 추가


설명

public mysql_xdevapi\Collection::add(mixed $document): mysql_xdevapi\CollectionAdd

컬렉션에 지정된 문서의 삽입을 트리거하고 이 메서드의 여러 변형이 지원됩니다. 옵션에는 다음이 포함됩니다.

  1. 단일 문서를 JSON 문자열로 추가합니다.
  2. 단일 문서를 배열로 추가: [ 'field' => 'value', 'field2' => 'value2' ... ]
  3. 동일한 작업에서 두 ​​문서를 혼합하여 여러 문서를 추가할 수 있습니다.

매개변수

document
하나 또는 여러 개의 문서, JSON 또는 관련 값이 있는 필드 배열일 수 있습니다. 이것은 빈 배열일 수 없습니다.

MySQL 서버는 각 문서에 대해 고유한 _id 값을 자동으로 생성하지만(권장), 수동으로 추가할 수도 있습니다. 이 값은 고유해야 합니다. 그렇지 않으면 추가 작업이 실패합니다.


반환 값

CollectionAdd 개체입니다. execute()를 사용하여 영향을 받는 항목 수, 작업에 의해 생성된 수 경고를 쿼리하거나 삽입된 문서에 대해 생성된 ID 목록을 가져오는 데 사용할 수 있는 결과를 반환합니다.


Examples

예제 #1 mysql_xdevapi\Collection::add() 예제

                  
<?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");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

// Add two documents
$collection->add('{"name": "Fred",  "age": 21, "job": "Construction"}')->execute();
$collection->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

// Add two documents using a single JSON object
$result = $collection->add(
  '{"name": "Bernie",
    "jobs": [{"title":"Cat Herder","Salary":42000}, {"title":"Father","Salary":0}],
    "hobbies": ["Sports","Making cupcakes"]}',
  '{"name": "Jane",
    "jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
    "hobbies": ["Walking","Making pies"]}')->execute();

// Fetch a list of generated ID's from the last add()
$ids = $result->getGeneratedIds();
print_r($ids);
?>
                  
                

위의 예는 다음과 유사한 결과를 출력합니다.

Array
(
    [0] => 00005b6b53610000000000000056
    [1] => 00005b6b53610000000000000057
)
                

노트

메모: 고유한 _id는 예제와 같이 MySQL Server 8.0 이상에서 생성됩니다. _id 필드는 MySQL Server 5.7을 사용하는 경우 수동으로 정의해야 합니다.