<!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>Create a new BulkWrite</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="class.mongodb-driver-bulkwrite.html">MongoDB\Driver\BulkWrite</a></div> <div class="next" style="text-align: right; float: right;"><a href="mongodb-driver-bulkwrite.count.html">MongoDB\Driver\BulkWrite::count</a></div> <div class="up"><a href="class.mongodb-driver-bulkwrite.html">MongoDB\Driver\BulkWrite</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div><hr /><div id="mongodb-driver-bulkwrite.construct" class="refentry"> <div class="refnamediv"> <h1 class="refname">MongoDB\Driver\BulkWrite::__construct</h1> <p class="verinfo">(mongodb >=1.0.0)</p><p class="refpurpose"><span class="refname">MongoDB\Driver\BulkWrite::__construct</span> — <span class="dc-title">Create a new BulkWrite</span></p> </div> <div class="refsect1 description" id="refsect1-mongodb-driver-bulkwrite.construct-description"> <h3 class="title">Description</h3> <div class="methodsynopsis dc-description"> <span class="modifier">public</span> <span class="methodname"><strong>MongoDB\Driver\BulkWrite::__construct</strong></span> ([ <span class="methodparam"><span class="type">array</span> <code class="parameter">$options</code></span> ] )</div> <p class="para rdfs-comment"> Constructs a new <a href="class.mongodb-driver-bulkwrite.html" class="classname">MongoDB\Driver\BulkWrite</a>, which is a mutable object to which one or more write operations may be added. The write(s) may then be executed with <span class="methodname"><a href="mongodb-driver-manager.executebulkwrite.html" class="methodname">MongoDB\Driver\Manager::executeBulkWrite()</a></span>. </p> </div> <div class="refsect1 parameters" id="refsect1-mongodb-driver-bulkwrite.construct-parameters"> <h3 class="title">Parameters</h3> <dl> <dt> <code class="parameter">options</code> (<span class="type"><a href="language.types.array.html" class="type array">array</a></span>)</dt> <dd> <p class="para"> <table class="doctable table"> <caption><strong>options</strong></caption> <thead> <tr> <th>Option</th> <th>Type</th> <th>Description</th> <th>Default</th> </tr> </thead> <tbody class="tbody"> <tr> <td>bypassDocumentValidation</td> <td><span class="type"><a href="language.types.boolean.html" class="type boolean">boolean</a></span></td> <td> <p class="para"> If <strong><code>TRUE</code></strong>, allows insert and update operations to circumvent document level validation. </p> <p class="para"> This option is available in MongoDB 3.2+ and is ignored for older server versions, which do not support document level validation. </p> </td> <td><strong><code>FALSE</code></strong></td> </tr> <tr> <td>ordered</td> <td><span class="type"><a href="language.types.boolean.html" class="type boolean">boolean</a></span></td> <td> Ordered operations (<strong><code>TRUE</code></strong>) are executed serially on the MongoDB server, while unordered operations (<strong><code>FALSE</code></strong>) are sent to the server in an arbitrary order and may be executed in parallel. </td> <td><strong><code>TRUE</code></strong></td> </tr> </tbody> </table> </p> </dd> </dl> </div> <div class="refsect1 errors" id="refsect1-mongodb-driver-bulkwrite.construct-errors"> <h3 class="title">Errors/Exceptions</h3> <ul class="simplelist"> <li class="member">Throws <a href="class.mongodb-driver-exception-invalidargumentexception.html" class="classname">MongoDB\Driver\Exception\InvalidArgumentException</a> on argument parsing errors.</li> </ul> </div> <div class="refsect1 changelog" id="refsect1-mongodb-driver-bulkwrite.construct-changelog"> <h3 class="title">Changelog</h3> <p class="para"> <table class="doctable informaltable"> <thead> <tr> <th>Version</th> <th>Description</th> </tr> </thead> <tbody class="tbody"> <tr> <td>1.1.0</td> <td> Added the <em>"bypassDocumentValidation"</em> option. </td> </tr> </tbody> </table> </p> </div> <div class="refsect1 examples" id="refsect1-mongodb-driver-bulkwrite.construct-examples"> <h3 class="title">Examples</h3> <div class="example" id="example-1698"> <p><strong>Example #1 <span class="function"><strong>MongoDB\Driver\BulkWrite::__construct()</strong></span> example</strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /><br />$bulk </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB</span><span style="color: #007700">\</span><span style="color: #0000BB">Driver</span><span style="color: #007700">\</span><span style="color: #0000BB">BulkWrite</span><span style="color: #007700">([</span><span style="color: #DD0000">'ordered' </span><span style="color: #007700">=> </span><span style="color: #0000BB">true</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-></span><span style="color: #0000BB">delete</span><span style="color: #007700">([]);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-></span><span style="color: #0000BB">insert</span><span style="color: #007700">([</span><span style="color: #DD0000">'_id' </span><span style="color: #007700">=> </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #DD0000">'x' </span><span style="color: #007700">=> </span><span style="color: #0000BB">1</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-></span><span style="color: #0000BB">insert</span><span style="color: #007700">([</span><span style="color: #DD0000">'_id' </span><span style="color: #007700">=> </span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #DD0000">'x' </span><span style="color: #007700">=> </span><span style="color: #0000BB">2</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-></span><span style="color: #0000BB">update</span><span style="color: #007700">(<br /> [</span><span style="color: #DD0000">'x' </span><span style="color: #007700">=> </span><span style="color: #0000BB">2</span><span style="color: #007700">],<br /> [</span><span style="color: #DD0000">'$set' </span><span style="color: #007700">=> [</span><span style="color: #DD0000">'x' </span><span style="color: #007700">=> </span><span style="color: #0000BB">1</span><span style="color: #007700">]],<br /> [</span><span style="color: #DD0000">'limit' </span><span style="color: #007700">=> </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #DD0000">'upsert' </span><span style="color: #007700">=> </span><span style="color: #0000BB">false</span><span style="color: #007700">]<br />);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-></span><span style="color: #0000BB">delete</span><span style="color: #007700">([</span><span style="color: #DD0000">'x' </span><span style="color: #007700">=> </span><span style="color: #0000BB">1</span><span style="color: #007700">], [</span><span style="color: #DD0000">'limit' </span><span style="color: #007700">=> </span><span style="color: #0000BB">1</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-></span><span style="color: #0000BB">update</span><span style="color: #007700">(<br /> [</span><span style="color: #DD0000">'_id' </span><span style="color: #007700">=> </span><span style="color: #0000BB">3</span><span style="color: #007700">],<br /> [</span><span style="color: #DD0000">'$set' </span><span style="color: #007700">=> [</span><span style="color: #DD0000">'x' </span><span style="color: #007700">=> </span><span style="color: #0000BB">3</span><span style="color: #007700">]],<br /> [</span><span style="color: #DD0000">'limit' </span><span style="color: #007700">=> </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #DD0000">'upsert' </span><span style="color: #007700">=> </span><span style="color: #0000BB">true</span><span style="color: #007700">]<br />);<br /><br /></span><span style="color: #0000BB">$manager </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB</span><span style="color: #007700">\</span><span style="color: #0000BB">Driver</span><span style="color: #007700">\</span><span style="color: #0000BB">Manager</span><span style="color: #007700">(</span><span style="color: #DD0000">'mongodb://localhost:27017'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$writeConcern </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB</span><span style="color: #007700">\</span><span style="color: #0000BB">Driver</span><span style="color: #007700">\</span><span style="color: #0000BB">WriteConcern</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /><br />try {<br /> </span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$manager</span><span style="color: #007700">-></span><span style="color: #0000BB">executeBulkWrite</span><span style="color: #007700">(</span><span style="color: #DD0000">'db.collection'</span><span style="color: #007700">, </span><span style="color: #0000BB">$bulk</span><span style="color: #007700">, </span><span style="color: #0000BB">$writeConcern</span><span style="color: #007700">);<br />} catch (</span><span style="color: #0000BB">MongoDB</span><span style="color: #007700">\</span><span style="color: #0000BB">Driver</span><span style="color: #007700">\</span><span style="color: #0000BB">Exception</span><span style="color: #007700">\</span><span style="color: #0000BB">BulkWriteException $e</span><span style="color: #007700">) {<br /> </span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$e</span><span style="color: #007700">-></span><span style="color: #0000BB">getWriteResult</span><span style="color: #007700">();<br /><br /> </span><span style="color: #FF8000">// Check if the write concern could not be fulfilled<br /> </span><span style="color: #007700">if (</span><span style="color: #0000BB">$writeConcernError </span><span style="color: #007700">= </span><span style="color: #0000BB">$result</span><span style="color: #007700">-></span><span style="color: #0000BB">getWriteConcernError</span><span style="color: #007700">()) {<br /> </span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"%s (%d): %s\n"</span><span style="color: #007700">,<br /> </span><span style="color: #0000BB">$writeConcernError</span><span style="color: #007700">-></span><span style="color: #0000BB">getMessage</span><span style="color: #007700">(),<br /> </span><span style="color: #0000BB">$writeConcernError</span><span style="color: #007700">-></span><span style="color: #0000BB">getCode</span><span style="color: #007700">(),<br /> </span><span style="color: #0000BB">var_export</span><span style="color: #007700">(</span><span style="color: #0000BB">$writeConcernError</span><span style="color: #007700">-></span><span style="color: #0000BB">getInfo</span><span style="color: #007700">(), </span><span style="color: #0000BB">true</span><span style="color: #007700">)<br /> );<br /> }<br /><br /> </span><span style="color: #FF8000">// Check if any write operations did not complete at all<br /> </span><span style="color: #007700">foreach (</span><span style="color: #0000BB">$result</span><span style="color: #007700">-></span><span style="color: #0000BB">getWriteErrors</span><span style="color: #007700">() as </span><span style="color: #0000BB">$writeError</span><span style="color: #007700">) {<br /> </span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"Operation#%d: %s (%d)\n"</span><span style="color: #007700">,<br /> </span><span style="color: #0000BB">$writeError</span><span style="color: #007700">-></span><span style="color: #0000BB">getIndex</span><span style="color: #007700">(),<br /> </span><span style="color: #0000BB">$writeError</span><span style="color: #007700">-></span><span style="color: #0000BB">getMessage</span><span style="color: #007700">(),<br /> </span><span style="color: #0000BB">$writeError</span><span style="color: #007700">-></span><span style="color: #0000BB">getCode</span><span style="color: #007700">()<br /> );<br /> }<br />} catch (</span><span style="color: #0000BB">MongoDB</span><span style="color: #007700">\</span><span style="color: #0000BB">Driver</span><span style="color: #007700">\</span><span style="color: #0000BB">Exception</span><span style="color: #007700">\</span><span style="color: #0000BB">Exception $e</span><span style="color: #007700">) {<br /> </span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"Other error: %s\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">$e</span><span style="color: #007700">-></span><span style="color: #0000BB">getMessage</span><span style="color: #007700">());<br /> exit;<br />}<br /><br /></span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"Inserted %d document(s)\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">$result</span><span style="color: #007700">-></span><span style="color: #0000BB">getInsertedCount</span><span style="color: #007700">());<br /></span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"Updated %d document(s)\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">$result</span><span style="color: #007700">-></span><span style="color: #0000BB">getModifiedCount</span><span style="color: #007700">());<br /></span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"Upserted %d document(s)\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">$result</span><span style="color: #007700">-></span><span style="color: #0000BB">getUpsertedCount</span><span style="color: #007700">());<br /></span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"Deleted %d document(s)\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">$result</span><span style="color: #007700">-></span><span style="color: #0000BB">getDeletedCount</span><span style="color: #007700">());<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> <div class="example-contents"><p>The above example will output:</p></div> <div class="example-contents screen"> <div class="cdata"><pre> Inserted 2 document(s) Updated 1 document(s) Upserted 1 document(s) Deleted 1 document(s) </pre></div> </div> </div> </div> <div class="refsect1 seealso" id="refsect1-mongodb-driver-bulkwrite.construct-seealso"> <h3 class="title">See Also</h3> <ul class="simplelist"> <li class="member"><span class="methodname"><a href="mongodb-driver-manager.executebulkwrite.html" class="methodname" rel="rdfs-seeAlso">MongoDB\Driver\Manager::executeBulkWrite()</a> - Execute one or more write operations</span></li> <li class="member"><a href="class.mongodb-driver-writeresult.html" class="classname">MongoDB\Driver\WriteResult</a></li> </ul> </div> </div><hr /><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="class.mongodb-driver-bulkwrite.html">MongoDB\Driver\BulkWrite</a></div> <div class="next" style="text-align: right; float: right;"><a href="mongodb-driver-bulkwrite.count.html">MongoDB\Driver\BulkWrite::count</a></div> <div class="up"><a href="class.mongodb-driver-bulkwrite.html">MongoDB\Driver\BulkWrite</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div></body></html>