MySQL and PHP

5.7.2 Collection::addOrReplaceOne

Copyright 1997-2021 the PHP Documentation Group.

Description

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

Add a new document, or replace a document if it already exists.

Here are several scenarios for this method:

Parameters

id

This is the filter id. If this id or any other field that has a unique index already exists in the collection, then it will update the matching document instead.

By default, this id is automatically generated by MySQL Server when the record was added, and is referenced as a field named '_id'.

doc

This is the document to add or replace, which is a JSON string.

Return Values

A Result object.

Examples

Example 5.12 mysql_xdevapi\Collection::addOrReplaceOne example

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

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

// Using addOrReplaceOne()
// Note: we're passing in a known _id value here
$result = $collection->addOrReplaceOne('00005b6b53610000000000000056', '{"name": "Fred",  "age": 21, "job": "Construction"}');

?>