PHP 8.4.1 Released!

Collection::addOrReplaceOne

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

Collection::addOrReplaceOneAjoute ou remplace un document de la collection

Description

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

Ajoute un nouveau document, ou remplace un document s'il existe déjà.

Il existe plusieurs scénarios pour cette méthode :

  • Ni l'id ni aucune valeur de clé unique ne sont en conflit avec un document de la collection, alors le document est ajouté.

  • Si l'id ne correspond à aucun document, mais qu'une ou plusieurs valeurs de clé unique entrent en conflit avec un document de la collection, alors une erreur est lancée.

  • Si l'id correspond à un document existant et qu'aucune clé unique n'est définie pour la collection, alors le document est remplacé.

  • Si l'id correspond à un document existant, et que toutes les clés uniques du document de remplacement correspondent à ce même document ou ne sont en conflit avec aucun autre document de la collection, alors le document est remplacé.

  • Si l'id correspond à un document existant, et qu'une ou plusieurs clés uniques correspondent à un autre document de la collection, alors une erreur est lancée.

Liste de paramètres

id

Ceci est l'identifiant du filtre. Si cet identifiant ou tout autre champ qui a un index unique existe déjà dans la collection, alors il mettra à jour le document correspondant.

Par défaut, cet identifiant est généré automatiquement par le serveur MySQL lorsque le document a été ajouté, et est référencé en tant que champ nommé '_id'.

doc

Ceci est le document à ajouter ou remplacer, qui est une chaîne JSON.

Valeurs de retour

Un objet Result.

Exemples

Exemple #1 Exemple de 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");

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

// Utiliser addOrReplaceOne()
// Note: nous passons ici une valeur _id connue
$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