2024 日本 PHP 研討會

Collection::addOrReplaceOne

(沒有版本資訊,可能只存在於 Git 中)

Collection::addOrReplaceOne新增或取代集合文件

說明

public mysql_xdevapi\Collection::addOrReplaceOne(字串 $id, 字串 $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