<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Add or replace collection document</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="mysql-xdevapi-collection.add.html">Collection::add</a></div> <div class="next" style="text-align: right; float: right;"><a href="mysql-xdevapi-collection.construct.html">Collection::__construct</a></div> <div class="up"><a href="class.mysql-xdevapi-collection.html">mysql_xdevapi\Collection</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div><hr /><div id="mysql-xdevapi-collection.addorreplaceone" class="refentry"> <div class="refnamediv"> <h1 class="refname">Collection::addOrReplaceOne</h1> <p class="verinfo">(No version information available, might only be in Git)</p><p class="refpurpose"><span class="refname">Collection::addOrReplaceOne</span> — <span class="dc-title">Add or replace collection document</span></p> </div> <div class="refsect1 description" id="refsect1-mysql-xdevapi-collection.addorreplaceone-description"> <h3 class="title">Description</h3> <div class="methodsynopsis dc-description"> <span class="modifier">public</span> <span class="type"><span class="type mysql_xdevapi\Result">mysql_xdevapi\Result</span></span> <span class="methodname"><strong>mysql_xdevapi\Collection::addOrReplaceOne</strong></span> ( <span class="methodparam"><span class="type">string</span> <code class="parameter">$id</code></span> , <span class="methodparam"><span class="type">string</span> <code class="parameter">$doc</code></span> )</div> <p class="para rdfs-comment"> Add a new document, or replace a document if it already exists. </p> <p class="para"> Here are several scenarios for this method: </p> <ul class="itemizedlist"> <li class="listitem"> <p class="para"> If neither the id or any unique key values conflict with any document in the collection, then the document is added. </p> </li> <li class="listitem"> <p class="para"> If the id does not match any document but one or more unique key values conflict with a document in the collection, then an error is raised. </p> </li> <li class="listitem"> <p class="para"> If id matches an existing document and no unique keys are defined for the collection, then the document is replaced. </p> </li> <li class="listitem"> <p class="para"> If id matches an existing document, and either all unique keys in the replacement document match that same document or they don't conflict with any other documents in the collection, then the document is replaced. </p> </li> <li class="listitem"> <p class="para"> If id matches an existing document and one or more unique keys match a different document from the collection, then an error is raised. </p> </li> </ul> </div> <div class="refsect1 parameters" id="refsect1-mysql-xdevapi-collection.addorreplaceone-parameters"> <h3 class="title">Parameters</h3> <dl> <dt> <code class="parameter">id</code></dt> <dd> <p class="para"> 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. </p> <p class="para"> By default, this id is automatically generated by MySQL Server when the record was added, and is referenced as a field named '_id'. </p> </dd> <dt> <code class="parameter">doc</code></dt> <dd> <p class="para"> This is the document to add or replace, which is a JSON string. </p> </dd> </dl> </div> <div class="refsect1 returnvalues" id="refsect1-mysql-xdevapi-collection.addorreplaceone-returnvalues"> <h3 class="title">Return Values</h3> <p class="para"> A Result object. </p> </div> <div class="refsect1 examples" id="refsect1-mysql-xdevapi-collection.addorreplaceone-examples"> <h3 class="title">Examples</h3> <div class="example" id="example-1980"> <p><strong>Example #1 <span class="function"><strong>mysql_xdevapi\Collection::addOrReplaceOne()</strong></span> example</strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br />$session </span><span style="color: #007700">= </span><span style="color: #0000BB">mysql_xdevapi</span><span style="color: #007700">\</span><span style="color: #0000BB">getSession</span><span style="color: #007700">(</span><span style="color: #DD0000">"mysqlx://user:password@localhost"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$session</span><span style="color: #007700">-></span><span style="color: #0000BB">sql</span><span style="color: #007700">(</span><span style="color: #DD0000">"DROP DATABASE IF EXISTS addressbook"</span><span style="color: #007700">)-></span><span style="color: #0000BB">execute</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$session</span><span style="color: #007700">-></span><span style="color: #0000BB">sql</span><span style="color: #007700">(</span><span style="color: #DD0000">"CREATE DATABASE addressbook"</span><span style="color: #007700">)-></span><span style="color: #0000BB">execute</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">$schema </span><span style="color: #007700">= </span><span style="color: #0000BB">$session</span><span style="color: #007700">-></span><span style="color: #0000BB">getSchema</span><span style="color: #007700">(</span><span style="color: #DD0000">"addressbook"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$create </span><span style="color: #007700">= </span><span style="color: #0000BB">$schema</span><span style="color: #007700">-></span><span style="color: #0000BB">createCollection</span><span style="color: #007700">(</span><span style="color: #DD0000">"people"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$collection </span><span style="color: #007700">= </span><span style="color: #0000BB">$schema</span><span style="color: #007700">-></span><span style="color: #0000BB">getCollection</span><span style="color: #007700">(</span><span style="color: #DD0000">"people"</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Using add()<br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$collection</span><span style="color: #007700">-></span><span style="color: #0000BB">add</span><span style="color: #007700">(</span><span style="color: #DD0000">'{"name": "Wilma", "age": 23, "job": "Teacher"}'</span><span style="color: #007700">)-></span><span style="color: #0000BB">execute</span><span style="color: #007700">();<br /><br /></span><span style="color: #FF8000">// Using addOrReplaceOne()<br />// Note: we're passing in a known _id value here<br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$collection</span><span style="color: #007700">-></span><span style="color: #0000BB">addOrReplaceOne</span><span style="color: #007700">(</span><span style="color: #DD0000">'00005b6b53610000000000000056'</span><span style="color: #007700">, </span><span style="color: #DD0000">'{"name": "Fred", "age": 21, "job": "Construction"}'</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> </div> </div><hr /><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="mysql-xdevapi-collection.add.html">Collection::add</a></div> <div class="next" style="text-align: right; float: right;"><a href="mysql-xdevapi-collection.construct.html">Collection::__construct</a></div> <div class="up"><a href="class.mysql-xdevapi-collection.html">mysql_xdevapi\Collection</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div></body></html>