# Collection::addOrReplaceOne

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

Collection::addOrReplaceOne — Ajoute 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"}');
?>`