Collection::addOrReplaceOne

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

Collection::addOrReplaceOne — 컬렉션 문서 추가 또는 교체


설명

public mysql_xdevapi\Collection::addOrReplaceOne(string $id, string $doc): mysql_xdevapi\Result

새 문서를 추가하거나 문서가 이미 있는 경우 교체하십시오.

이 메서드에 대한 몇 가지 시나리오는 다음과 같습니다.

  • id 또는 고유 키 값이 컬렉션의 문서와 충돌하지 않으면 문서가 추가됩니다.
  • ID가 문서와 일치하지 않지만 하나 이상의 고유 키 값이 컬렉션의 문서와 충돌하는 경우 오류가 발생합니다.
  • id가 기존 문서와 일치하고 컬렉션에 대해 정의된 고유 키가 없으면 문서가 대체됩니다.
  • id가 기존 문서와 일치하고 대체 문서의 모든 고유 키가 동일한 문서와 일치하거나 컬렉션의 다른 문서와 충돌하지 않으면 문서가 대체됩니다.
  • id가 기존 문서와 일치하고 하나 이상의 고유 키가 컬렉션의 다른 문서와 일치하면 오류가 발생합니다.

매개변수

id
이것은 필터 ID입니다. 이 ID 또는 고유 색인이 있는 다른 필드가 이미 컬렉션에 존재하는 경우 일치하는 문서를 대신 업데이트합니다.

기본적으로 이 id는 레코드가 추가될 때 MySQL Server에 의해 자동으로 생성되며 '_id'라는 필드로 참조됩니다.

doc
JSON 문자열인 추가 또는 교체할 문서입니다.

반환 값

결과 개체입니다.


Examples

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

                  
<?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");

// Using add()
$result = $collection->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

// Using addOrReplaceOne()
// Note: we're passing in a known _id value here
$result = $collection->addOrReplaceOne('00005b6b53610000000000000056', '{"name": "Fred",  "age": 21, "job": "Construction"}');

?>