<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/mongodb.mongodb.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'it',
  ),
  'this' => 
  array (
    0 => 'class.mongodb-driver-bulkwritecommand.php',
    1 => 'MongoDB\\Driver\\BulkWriteCommand',
    2 => 'The MongoDB\\Driver\\BulkWriteCommand class',
  ),
  'up' => 
  array (
    0 => 'mongodb.mongodb.php',
    1 => 'MongoDB\\Driver',
  ),
  'prev' => 
  array (
    0 => 'mongodb-driver-bulkwrite.update.php',
    1 => 'MongoDB\\Driver\\BulkWrite::update',
  ),
  'next' => 
  array (
    0 => 'mongodb-driver-bulkwritecommand.construct.php',
    1 => 'MongoDB\\Driver\\BulkWriteCommand::__construct',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'en',
    'path' => 'reference/mongodb/mongodb/driver/bulkwritecommand.xml',
  ),
  'history' => 
  array (
  ),
  'extra_header_links' => 
  array (
    'rel' => 'alternate',
    'href' => '/manual/en/feeds/class.mongodb-driver-bulkwritecommand.atom',
    'type' => 'application/atom+xml',
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="class.mongodb-driver-bulkwritecommand" class="reference">

 <h1 class="title">The MongoDB\Driver\BulkWriteCommand class</h1>
 

 <div class="partintro"><p class="verinfo">(mongodb &gt;=2.1.0)</p>


  <div class="section" id="mongodb-driver-bulkwritecommand.intro">
   <h2 class="title">Introduzione</h2>
   <p class="simpara">
    <span class="classname"><strong class="classname">MongoDB\Driver\BulkWriteCommand</strong></span> collects one or more
    write operations that should be sent to the server using the
    <a href="https://www.mongodb.com/docs/manual/reference/command/bulkWrite" class="link external">&raquo;&nbsp;bulkWrite</a>
    command introduced in MongoDB 8.0. After adding any number of insert,
    update, and delete operations, the command may be executed via
    <span class="methodname"><a href="mongodb-driver-manager.executebulkwritecommand.php" class="methodname">MongoDB\Driver\Manager::executeBulkWriteCommand()</a></span>.
   </p>
   <p class="simpara">
    Unlike <span class="classname"><a href="class.mongodb-driver-bulkwrite.php" class="classname">MongoDB\Driver\BulkWrite</a></span>, where all write
    operations must target the same collection, each write operation within
    <span class="classname"><strong class="classname">MongoDB\Driver\BulkWriteCommand</strong></span> may target a
    different collection.
   </p>
   <p class="simpara">
    Write operations may either be ordered (default) or unordered. Ordered write
    operations are sent to the server, in the order provided, for serial
    execution. If a write fails, any remaining operations will be aborted.
    Unordered operations are sent to the server in an arbitrary order
    where they may be executed in parallel. Any errors that occur are reported
    after all operations have been attempted.
   </p>
  </div>


  <div class="section" id="mongodb-driver-bulkwritecommand.synopsis">
   <h2 class="title">Sommario della classe</h2>


   <div class="classsynopsis">
    <span class="ooclass"><strong class="classname"></strong></span>


    <div class="classsynopsisinfo">
     <span class="modifier">final</span>
     <span class="ooclass">
      <span class="modifier">class</span> <strong class="classname">MongoDB\Driver\BulkWriteCommand</strong>
     </span>

     <span class="oointerface"><span class="modifier">implements</span> 
       <a href="class.countable.php" class="interfacename">Countable</a></span> {</div>


    <div class="classsynopsisinfo classsynopsisinfo_comment">/* Metodi */</div>
    <div class="methodsynopsis dc-description">
   <span class="modifier">public</span> <span class="methodname"><a href="mongodb-driver-bulkwritecommand.construct.php" class="methodname">__construct</a></span>(<span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.array.php" class="type array">array</a></span></span> <code class="parameter">$options</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span>)</div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="mongodb-driver-bulkwritecommand.count.php" class="methodname">count</a></span>(): <span class="type"><a href="language.types.integer.php" class="type int">int</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="mongodb-driver-bulkwritecommand.deletemany.php" class="methodname">deleteMany</a></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$namespace</code></span>, <span class="methodparam"><span class="type"><span class="type"><a href="language.types.array.php" class="type array">array</a></span>|<span class="type"><a href="language.types.object.php" class="type object">object</a></span></span> <code class="parameter">$filter</code></span>, <span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.array.php" class="type array">array</a></span></span> <code class="parameter">$options</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span>): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="mongodb-driver-bulkwritecommand.deleteone.php" class="methodname">deleteOne</a></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$namespace</code></span>, <span class="methodparam"><span class="type"><span class="type"><a href="language.types.array.php" class="type array">array</a></span>|<span class="type"><a href="language.types.object.php" class="type object">object</a></span></span> <code class="parameter">$filter</code></span>, <span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.array.php" class="type array">array</a></span></span> <code class="parameter">$options</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span>): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="mongodb-driver-bulkwritecommand.insertone.php" class="methodname">insertOne</a></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$namespace</code></span>, <span class="methodparam"><span class="type"><span class="type"><a href="language.types.array.php" class="type array">array</a></span>|<span class="type"><a href="language.types.object.php" class="type object">object</a></span></span> <code class="parameter">$document</code></span>): <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="mongodb-driver-bulkwritecommand.replaceone.php" class="methodname">replaceOne</a></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$namespace</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.array.php" class="type array">array</a></span>|<span class="type"><a href="language.types.object.php" class="type object">object</a></span></span> <code class="parameter">$filter</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.array.php" class="type array">array</a></span>|<span class="type"><a href="language.types.object.php" class="type object">object</a></span></span> <code class="parameter">$replacement</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.array.php" class="type array">array</a></span></span> <code class="parameter">$options</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span><br>): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="mongodb-driver-bulkwritecommand.updatemany.php" class="methodname">updateMany</a></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$namespace</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.array.php" class="type array">array</a></span>|<span class="type"><a href="language.types.object.php" class="type object">object</a></span></span> <code class="parameter">$filter</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.array.php" class="type array">array</a></span>|<span class="type"><a href="language.types.object.php" class="type object">object</a></span></span> <code class="parameter">$update</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.array.php" class="type array">array</a></span></span> <code class="parameter">$options</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span><br>): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="mongodb-driver-bulkwritecommand.updateone.php" class="methodname">updateOne</a></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$namespace</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.array.php" class="type array">array</a></span>|<span class="type"><a href="language.types.object.php" class="type object">object</a></span></span> <code class="parameter">$filter</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.array.php" class="type array">array</a></span>|<span class="type"><a href="language.types.object.php" class="type object">object</a></span></span> <code class="parameter">$update</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.array.php" class="type array">array</a></span></span> <code class="parameter">$options</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span><br>): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>

   }</div>


  </div>

  <div class="section" id="mongodb-driver-bulkwritecommand.examples">
   <h2 class="title">Esempi</h2>

   <div class="example" id="example-1">
    <p><strong>Example #1 Mixed write operations</strong></p>
    <div class="example-contents"><p>
     Mixed write operations (i.e. inserts, updates, and deletes) will be sent
     to the server using a single
     <a href="https://www.mongodb.com/docs/manual/reference/command/bulkWrite" class="link external">&raquo;&nbsp;bulkWrite</a>
     command.
    </p></div>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$manager </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB\Driver\Manager</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$bulk </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB\Driver\BulkWriteCommand</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Delete documents from both collections<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">deleteMany</span><span style="color: #007700">(</span><span style="color: #DD0000">'db.coll_one'</span><span style="color: #007700">, []);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">deleteMany</span><span style="color: #007700">(</span><span style="color: #DD0000">'db.coll_two'</span><span style="color: #007700">, []);<br /><br /></span><span style="color: #FF8000">// Insert documents into two collections<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">insertOne</span><span style="color: #007700">(</span><span style="color: #DD0000">'db.coll_one'</span><span style="color: #007700">, [</span><span style="color: #DD0000">'_id' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">1</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">insertOne</span><span style="color: #007700">(</span><span style="color: #DD0000">'db.coll_two'</span><span style="color: #007700">, [</span><span style="color: #DD0000">'_id' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">2</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">insertOne</span><span style="color: #007700">(</span><span style="color: #DD0000">'db.coll_two'</span><span style="color: #007700">, [</span><span style="color: #DD0000">'_id' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">3</span><span style="color: #007700">]);<br /><br /></span><span style="color: #FF8000">// Update a document in "coll_one"<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">updateOne</span><span style="color: #007700">(</span><span style="color: #DD0000">'db.coll_one'</span><span style="color: #007700">, [</span><span style="color: #DD0000">'_id' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">1</span><span style="color: #007700">], [</span><span style="color: #DD0000">'$set' </span><span style="color: #007700">=&gt; [</span><span style="color: #DD0000">'x' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">1</span><span style="color: #007700">]]);<br /><br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$manager</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">executeBulkWriteCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$bulk</span><span style="color: #007700">);<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">-&gt;</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">-&gt;</span><span style="color: #0000BB">getModifiedCount</span><span style="color: #007700">());<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>Il precedente esempio visualizzerà:</p></div>
    <div class="example-contents screen">
<div class="cdata"><pre>
Inserted 3 document(s)
Updated  1 document(s)
</pre></div>
    </div>
   </div>
   <div class="example" id="example-2">
    <p><strong>Example #2 Ordered write operations causing an error</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$manager </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB\Driver\Manager</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$bulk </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB\Driver\BulkWriteCommand</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">deleteMany</span><span style="color: #007700">(</span><span style="color: #DD0000">'db.coll'</span><span style="color: #007700">, []);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">insertOne</span><span style="color: #007700">(</span><span style="color: #DD0000">'db.coll'</span><span style="color: #007700">, [</span><span style="color: #DD0000">'_id' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">1</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">insertOne</span><span style="color: #007700">(</span><span style="color: #DD0000">'db.coll'</span><span style="color: #007700">, [</span><span style="color: #DD0000">'_id' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">2</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">insertOne</span><span style="color: #007700">(</span><span style="color: #DD0000">'db.coll'</span><span style="color: #007700">, [</span><span style="color: #DD0000">'_id' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">1</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">insertOne</span><span style="color: #007700">(</span><span style="color: #DD0000">'db.coll'</span><span style="color: #007700">, [</span><span style="color: #DD0000">'_id' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">3</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">-&gt;</span><span style="color: #0000BB">executeBulkWriteCommand</span><span style="color: #007700">(</span><span style="color: #0000BB">$bulk</span><span style="color: #007700">);<br />} catch (</span><span style="color: #0000BB">MongoDB\Driver\Exception\BulkWriteCommandException $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">-&gt;</span><span style="color: #0000BB">getPartialResult</span><span style="color: #007700">();<br /><br />    </span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$e</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getWriteErrors</span><span style="color: #007700">());<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">-&gt;</span><span style="color: #0000BB">getInsertedCount</span><span style="color: #007700">());<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>Il precedente esempio visualizzerà
qualcosa simile a:</p></div>
    <div class="example-contents screen">
<div class="cdata"><pre>
array(1) {
  [3]=&gt;
  object(MongoDB\Driver\WriteError)#5 (4) {
    [&quot;message&quot;]=&gt;
    string(78) &quot;E11000 duplicate key error collection: db.coll index: _id_ dup key: { _id: 1 }&quot;
    [&quot;code&quot;]=&gt;
    int(11000)
    [&quot;index&quot;]=&gt;
    int(3)
    [&quot;info&quot;]=&gt;
    object(stdClass)#6 (0) {
    }
  }
}
Inserted 2 document(s)
</pre></div>
    </div>
   </div>
  </div>

  <div class="section" id="mongodb-driver-bulkwritecommand.seealso">
   <h2 class="title">Vedere anche:</h2>
   <ul class="simplelist">
    <li><span class="methodname"><a href="mongodb-driver-manager.executebulkwritecommand.php" class="methodname">MongoDB\Driver\Manager::executeBulkWriteCommand()</a></span></li>
    <li><span class="classname"><a href="class.mongodb-driver-bulkwritecommandresult.php" class="classname">MongoDB\Driver\BulkWriteCommandResult</a></span></li>
    <li><span class="classname"><a href="class.mongodb-driver-exception-bulkwritecommandexception.php" class="classname">MongoDB\Driver\Exception\BulkWriteCommandException</a></span></li>
    <li><span class="classname"><a href="class.mongodb-driver-writeconcern.php" class="classname">MongoDB\Driver\WriteConcern</a></span></li>
    <li><span class="classname"><a href="class.mongodb-driver-writeconcernerror.php" class="classname">MongoDB\Driver\WriteConcernError</a></span></li>
    <li><span class="classname"><a href="class.mongodb-driver-writeerror.php" class="classname">MongoDB\Driver\WriteError</a></span></li>
   </ul>
  </div>

 </div>

 
























































<h2>Indice dei contenuti</h2><ul class="chunklist chunklist_reference"><li><a href="mongodb-driver-bulkwritecommand.construct.php">MongoDB\Driver\BulkWriteCommand::__construct</a> — Create a new BulkWriteCommand</li><li><a href="mongodb-driver-bulkwritecommand.count.php">MongoDB\Driver\BulkWriteCommand::count</a> — Count number of write operations in the BulkWriteCommand</li><li><a href="mongodb-driver-bulkwritecommand.deletemany.php">MongoDB\Driver\BulkWriteCommand::deleteMany</a> — Add a deleteMany operation</li><li><a href="mongodb-driver-bulkwritecommand.deleteone.php">MongoDB\Driver\BulkWriteCommand::deleteOne</a> — Add a deleteOne operation</li><li><a href="mongodb-driver-bulkwritecommand.insertone.php">MongoDB\Driver\BulkWriteCommand::insertOne</a> — Add an insertOne operation</li><li><a href="mongodb-driver-bulkwritecommand.replaceone.php">MongoDB\Driver\BulkWriteCommand::replaceOne</a> — Add a replaceOne operation</li><li><a href="mongodb-driver-bulkwritecommand.updatemany.php">MongoDB\Driver\BulkWriteCommand::updateMany</a> — Add an updateMany operation</li><li><a href="mongodb-driver-bulkwritecommand.updateone.php">MongoDB\Driver\BulkWriteCommand::updateOne</a> — Add an updateOne operation</li></ul>
</div>
<?php manual_footer($setup); ?>