Collection::addOrReplaceOne
(No version information available, might only be in Git)
Collection::addOrReplaceOne — Добавляет или заменяет документ коллекции
Описание
$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"}');
?>