(No version information available, might only be in Git)
Collection::addOrReplaceOne — Ajoute ou remplace un document de la collection
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.
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.
Un objet Result.
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"}');
?>