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 服务器自动生成,并被引用为名为 '_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"}');

?>
添加注释

用户贡献的注释

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