<?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 => 'es',
  ),
  'this' => 
  array (
    0 => 'class.mongodb-driver-bulkwrite.php',
    1 => 'MongoDB\\Driver\\BulkWrite',
    2 => 'La clase MongoDB\\Driver\\BulkWrite',
  ),
  'up' => 
  array (
    0 => 'mongodb.mongodb.php',
    1 => 'MongoDB\\Driver',
  ),
  'prev' => 
  array (
    0 => 'mongodb-driver-query.construct.php',
    1 => 'MongoDB\\Driver\\Query::__construct',
  ),
  'next' => 
  array (
    0 => 'mongodb-driver-bulkwrite.construct.php',
    1 => 'MongoDB\\Driver\\BulkWrite::__construct',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/mongodb/mongodb/driver/bulkwrite.xml',
  ),
  'history' => 
  array (
  ),
  'extra_header_links' => 
  array (
    'rel' => 'alternate',
    'href' => '/manual/en/feeds/class.mongodb-driver-bulkwrite.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-bulkwrite" class="reference">
 <h1 class="title">La clase MongoDB\Driver\BulkWrite</h1>
 

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


  <div class="section" id="mongodb-driver-bulkwrite.intro">
   <h2 class="title">Introducción</h2>
   <p class="para">
    El <span class="classname"><strong class="classname">MongoDB\Driver\BulkWrite</strong></span> recopila una o más
    operaciones de escritura que deberían ser enviadas al servidor. Después de agregar
    un número cualquiera de operaciones de inserción, actualización y eliminación,
    la colección puede ser ejecutada a través de
    <span class="methodname"><a href="mongodb-driver-manager.executebulkwrite.php" class="methodname">MongoDB\Driver\Manager::executeBulkWrite()</a></span>.
   </p>
   <p class="para">
    Las operaciones de escritura pueden ser ordenadas (por omisión) o no ordenadas.
    Las operaciones de escritura ordenadas son enviadas al servidor, en el orden
    proporcionado, para una ejecución serial. Si una escritura falla, todas las
    operaciones restantes serán canceladas. Las operaciones no ordenadas son enviadas
    al servidor en un orden arbitrario donde pueden ser ejecutadas en paralelo.
    Todos los errores que ocurren son reportados después de que todas las
    operaciones hayan sido intentadas.
   </p>
  </div>


  <div class="section" id="mongodb-driver-bulkwrite.synopsis">
   <h2 class="title">Sinopsis de la Clase</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\BulkWrite</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">/* Métodos */</div>
    <div class="methodsynopsis dc-description">
   <span class="modifier">public</span> <span class="methodname"><a href="mongodb-driver-bulkwrite.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-bulkwrite.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-bulkwrite.delete.php" class="methodname">delete</a></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">$deleteOptions</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-bulkwrite.insert.php" class="methodname">insert</a></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-bulkwrite.update.php" class="methodname">update</a></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.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">$newObj</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">$updateOptions</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>


  </div>

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

   <div class="example" id="example-1">
    <p><strong>Ejemplo #1 Operaciones de escritura ordenadas por tipo</strong></p>
    <div class="example-contents"><p>
     Las operaciones de escritura mixtas (es decir, las inserciones, las actualizaciones y las eliminaciones) serán ensambladas en comandos de escritura tipificados para ser enviados secuencialmente al servidor.
    </p></div>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$bulk </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB\Driver\BulkWrite</span><span style="color: #007700">([</span><span style="color: #DD0000">'ordered' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">true</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">insert</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">'x' </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">insert</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">, </span><span style="color: #DD0000">'x' </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">update</span><span style="color: #007700">([</span><span style="color: #DD0000">'x' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">2</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 /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">insert</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">, </span><span style="color: #DD0000">'x' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">3</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">delete</span><span style="color: #007700">([</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">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>
     Resulta en cuatro comandos de escritura (es decir, idas y vueltas)
     ejecutadas. Dado que las operaciones son ordenadas, la tercera inserción no puede ser enviada
     hasta que la actualización previa sea ejecutada.
    </p></div>
   </div>
   <div class="example" id="example-2">
    <p><strong>Ejemplo #2 Operaciones de escritura ordenadas causando un error</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$bulk </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB\Driver\BulkWrite</span><span style="color: #007700">([</span><span style="color: #DD0000">'ordered' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">true</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">delete</span><span style="color: #007700">([]);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">insert</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">insert</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">insert</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">, </span><span style="color: #DD0000">'hello' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'world'</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">update</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">], [</span><span style="color: #DD0000">'$set' </span><span style="color: #007700">=&gt; [</span><span style="color: #DD0000">'hello' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'earth'</span><span style="color: #007700">]]);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">insert</span><span style="color: #007700">([</span><span style="color: #DD0000">'_id' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">4</span><span style="color: #007700">, </span><span style="color: #DD0000">'hello' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'pluto'</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">update</span><span style="color: #007700">([</span><span style="color: #DD0000">'_id' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">4</span><span style="color: #007700">], [</span><span style="color: #DD0000">'$set' </span><span style="color: #007700">=&gt; [</span><span style="color: #DD0000">'hello' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'moon'</span><span style="color: #007700">]]);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">insert</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 /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">insert</span><span style="color: #007700">([</span><span style="color: #DD0000">'_id' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">4</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">$bulk</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">insert</span><span style="color: #007700">([</span><span style="color: #DD0000">'_id' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">5</span><span style="color: #007700">]);<br /><br /></span><span style="color: #0000BB">$manager </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB\Driver\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\Driver\WriteConcern</span><span style="color: #007700">(</span><span style="color: #0000BB">MongoDB\Driver\WriteConcern</span><span style="color: #007700">::</span><span style="color: #0000BB">MAJORITY</span><span style="color: #007700">, </span><span style="color: #0000BB">1000</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">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: #DD0000">'writeConcern' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">$writeConcern</span><span style="color: #007700">]);<br />} catch (</span><span style="color: #0000BB">MongoDB\Driver\Exception\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">-&gt;</span><span style="color: #0000BB">getWriteResult</span><span style="color: #007700">();<br /><br />    </span><span style="color: #FF8000">// Verifica si la escritura no pudo ser satisfecha<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">-&gt;</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">-&gt;</span><span style="color: #0000BB">getMessage</span><span style="color: #007700">(),<br />            </span><span style="color: #0000BB">$writeConcernError</span><span style="color: #007700">-&gt;</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">-&gt;</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">// Verifica si una operación de escritura no pudo ser completada<br />    </span><span style="color: #007700">foreach (</span><span style="color: #0000BB">$result</span><span style="color: #007700">-&gt;</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">"Operación#%d: %s (%d)\n"</span><span style="color: #007700">,<br />            </span><span style="color: #0000BB">$writeError</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getIndex</span><span style="color: #007700">(),<br />            </span><span style="color: #0000BB">$writeError</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getMessage</span><span style="color: #007700">(),<br />            </span><span style="color: #0000BB">$writeError</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getCode</span><span style="color: #007700">()<br />        );<br />    }<br />} catch (</span><span style="color: #0000BB">MongoDB\Driver\Exception\Exception $e</span><span style="color: #007700">) {<br />    </span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"Otro error: %s\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">$e</span><span style="color: #007700">-&gt;</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">"Insertados %d documento(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">"Actualizados  %d documento(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>
   <p class="para">El ejemplo anterior mostrará:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Operación#7: E11000 duplicate key error index: db.collection.$_id_ dup key: { : 3 } (11000)
Insertados 4 documento(s)
Actualizados  2 documento(s)
</pre></div>
   </div>
   <p class="para">
    Si el write concern no puede ser satisfecho, el ejemplo anterior mostrará
    algo como:
   </p>
   <div class="example-contents screen">
<div class="cdata"><pre>
esperando la replicación tiempo agotado (64): array (
  &#039;wtimeout&#039; =&gt; true,
)
Operación#7: E11000 duplicate key error index: databaseName.collectionName.$_id_ dup key: { : 3 } (11000)
Insertados 4 documento(s)
Actualizados  2 documento(s)
</pre></div>
   </div>
   <p class="para">
    Si se ejecuta el ejemplo anterior, pero se permiten escrituras no ordenadas:
   </p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$bulk </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB\Driver\BulkWrite</span><span style="color: #007700">([</span><span style="color: #DD0000">'ordered' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">false</span><span style="color: #007700">]);<br /></span><span style="color: #FF8000">/* ... */<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <p class="para">El ejemplo anterior mostrará:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Operación#7: E11000 duplicate key error index: db.collection.$_id_ dup key: { : 3 } (11000)
Operación#8: E11000 duplicate key error index: db.collection.$_id_ dup key: { : 4 } (11000)
Insertados 5 documento(s)
Actualizados  2 documento(s)
</pre></div>
   </div>
  </div>

  <div class="section" id="mongodb-driver-bulkwrite.seealso">
   <h2 class="title">Ver también</h2>
   <ul class="simplelist">
    <li><span class="methodname"><a href="mongodb-driver-manager.executebulkwrite.php" class="methodname">MongoDB\Driver\Manager::executeBulkWrite()</a></span></li>
    <li><span class="classname"><a href="class.mongodb-driver-writeresult.php" class="classname">MongoDB\Driver\WriteResult</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>Tabla de contenidos</h2><ul class="chunklist chunklist_reference"><li><a href="mongodb-driver-bulkwrite.construct.php">MongoDB\Driver\BulkWrite::__construct</a> — Crear un nuevo BulkWrite</li><li><a href="mongodb-driver-bulkwrite.count.php">MongoDB\Driver\BulkWrite::count</a> — Cuenta el n&uacute;mero de operaciones de escritura en el lote</li><li><a href="mongodb-driver-bulkwrite.delete.php">MongoDB\Driver\BulkWrite::delete</a> — A&ntilde;ade una operaci&oacute;n de eliminaci&oacute;n al lote</li><li><a href="mongodb-driver-bulkwrite.insert.php">MongoDB\Driver\BulkWrite::insert</a> — A&ntilde;ade una operaci&oacute;n de inserci&oacute;n al lote</li><li><a href="mongodb-driver-bulkwrite.update.php">MongoDB\Driver\BulkWrite::update</a> — A&ntilde;ade una operaci&oacute;n de actualizaci&oacute;n al lote</li></ul>
</div>
<?php manual_footer($setup); ?>