PHPCon Poland 2024

Collection::addOrReplaceOne

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

Collection::addOrReplaceOneFügt einer Sammlung ein Dokument hinzu oder ersetzt es

Beschreibung

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

Fügt ein neues Dokument hinzu oder ersetzt ein bereits vorhandenes Dokument.

Für diese Methode gibt es mehrere Szenarien:

  • Wenn weder die ID noch ein eindeutiger Wert des Schlüssels mit einem Dokument in der Sammlung übereinstimmen, wird das Dokument hinzugefügt.

  • Wenn die ID mit keinem Dokument übereinstimmt, aber ein oder mehrere eindeutige Schlüsselwerte mit einem Dokument in der Sammlung übereinstimmen, wird ein Fehler ausgegeben.

  • Wenn die ID mit einem vorhandenen Dokument übereinstimmt und für die Sammlung keine eindeutigen Schlüssel definiert sind, wird das Dokument ersetzt.

  • Wenn die ID mit einem vorhandenen Dokument übereinstimmt und entweder alle eindeutigen Schlüssel des Ersatzdokuments mit demselben Dokument übereinstimmen oder mit keinem anderen Dokument der Sammlung in Konflikt stehen, wird das Dokument ersetzt.

  • Wenn die ID mit einem vorhandenen Dokument übereinstimmt und ein oder mehrere eindeutige Schlüssel mit einem anderen Dokument aus der Sammlung übereinstimmen, wird ein Fehler ausgegeben.

Parameter-Liste

id

Die Filter-ID. Wenn diese ID oder ein anderes Feld, das einen eindeutigen Index hat, bereits in der Sammlung vorhanden ist, wird stattdessen das zugehörige Dokument aktualisiert.

Standardmäßig wird diese ID automatisch vom MySQL-Server erzeugt, wenn der Datensatz hinzugefügt wird, und wird durch das Feld "_id" referenziert.

doc

Das hinzuzufügende oder zu ersetzende Dokument; eine JSON-Zeichenkette.

Rückgabewerte

Gibt ein Result-Objekt zurück.

Beispiele

Beispiel #1 mysql_xdevapi\Collection::addOrReplaceOne()-Beispiel

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

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

// Verwenden von addOrReplaceOne()
// Hinweis: Wir übergeben hier einen bekannten _id-Wert
$result = $collection->addOrReplaceOne('00005b6b53610000000000000056', '{"name": "Fred", "age": 21, "job": "Construction"}');

?>
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top