(PECL mongo >= 1.5.0)
MongoWriteBatch::add — Añade una operación de escritura a un lote
$item
   ) : boolAñade una operación de escritura al lote.
   Si $item hace que el lote exceda los límites
   » maxWriteBatchSize
   o » maxBsonObjectSize,
   el controlador dividirá internamente los lotes en varias órdenes de
   escritura en la llamada a MongoWriteBatch::execute().
  
itemUn array que describe una operación de escritura. La estructura de este valor depende del tipo de operación del lote.
| Tipo de lote | Argumento previsto | 
|---|---|
| MongoWriteBatch::COMMAND_INSERT | El documento a añadir. | 
| MongoWriteBatch::COMMAND_UPDATE | Operación de acualización pura. Las claves requeridas son "q" y "u", las cuales se corresponden a los parámetros  Las claves opcionales son "multi" y "upsert", las cuales se corresponden a las opciones "multiple" y "upsert" para MongoCollection::update(), respectivamente. Si no se especifican, ambas opciones se predeterminan a  | 
| MongoWriteBatch::COMMAND_DELETE | Operación de eliminación pura.. Las claves requeridas son: "q" y "limit", las cuales se corresponden al parámetro  La opción "limit" es un integer; sin embargo, MongoDB únicamente soporta 0 (es decir, eliminar todos los documentos coincidentes) y 1 (es decir, eliminar al menos un elemento coincidente) por ahora. | 
   Devuelve TRUE en caso de éxito y lanza una excepción en caso de fallo.
  
Ejemplo #1 Ejemplo de MongoWriteBatch::add()
Poner en lotes varias operaciones de inserción
<?php
$mc = new MongoClient("localhost");
$colección = $mc->selectCollection("test", "test");
$docs = array();
$docs[] = array("my" => "demo");
$docs[] = array("is" => "working");
$docs[] = array("pretty" => "well");
$lote = new MongoInsertBatch($colección);
foreach($docs as $documento) {
    $lote->add($documento);
}
$lote->execute(array("w" => 1));
?>
Ejemplo #2 Ejemplo de MongoWriteBatch::add()
Poner en lotes varias operaciones de actualización
<?php
$mc = new MongoClient("localhost");
$colección = $mc->selectCollection("test", "test");
$item1 = array(
    "q" => array("my" => "demo"),
    "u" => array('$set' => array("try" => 1)),
    "multi"  => false, /* valor predeterminado */
    "upsert" => false, /* valor predeterminado */
);
$item2 = array(
    "q" => array("is" => "working"),
    "u" => array('$set' => array("try" => 2)),
    "multi" => true,
);
$item3 = array(
    "q" => array("created" => "new-document"),
    "u" => array('$set' => array("try" => 3)),
    "upsert" => true,
);
$lote = new MongoUpdateBatch($colección);
$lote->add($item1);
$lote->add($item2);
$lote->add($item3);
$lote->execute(array("w" => 1));
?>
Ejemplo #3 Ejemplo de MongoWriteBatch::add()
Poner en lotes varias operaciones de eliminación
<?php
$mc = new MongoClient("localhost");
$colección = $mc->selectCollection("test", "test");
$item1 = array(
    "q" => array("my" => "demo"),
    "limit" => 1,
);
$item2 = array(
    "q" => array("try" => 3),
    "limit" => 1,
);
$lote = new MongoDeleteBatch($colección);
$lote->add($item1);
$lote->add($item2);
$lote->execute(array("w" => 1));
?>