Collection::addOrReplaceOne

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

Collection::addOrReplaceOneДобавляет или заменяет документ коллекции

Описание

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

Добавляет новый документ или заменяет существующий.

Вот несколько сценариев для этого метода:

  • Если ни идентификатор, ни какое-либо уникальное значение ключа не конфликтуют с каким-либо документом в коллекции, то этот документ добавляется.

  • Если идентификатор не соответствует ни одному документу, но одно или несколько уникальных значений ключей конфликтуют с документом в коллекции, выдается ошибка.

  • Если идентификатор соответствует существующему документу и уникальные ключи не определены для коллекции, то документ заменяется.

  • Если идентификатор соответствует существующему документу, или все уникальные ключи в документе замены соответствуют этому же документу или не конфликтуют с другими документами в коллекции, документ заменяется.

  • Если идентификатор соответствует существующему документу, а один или несколько уникальных ключей соответствуют документу, отличному от коллекции, выдается ошибка.

Список параметров

id

Идентификатор фильтра. Если идентификатор или любое другое поле с уникальным индексом уже существует в коллекции, он обновит соответствующий документ.

По умолчанию этот идентификатор автоматически генерируется MySQL Server при добавлении записи и упоминается, как поле с именем '_id'.

doc

Это документ для добавления или замены, представляющий собой строку JSON.

Возвращаемые значения

Объект Result.

Примеры

Пример #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");

// Использование add()
$result $collection->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

// Использование addOrReplaceOne()
// Примечания: мы передаем известное значение _id
$result $collection->addOrReplaceOne('00005b6b53610000000000000056''{"name": "Fred",  "age": 21, "job": "Construction"}');

?>