MongoWriteBatch::add
(PECL mongo >= 1.5.0)
MongoWriteBatch::add — Añade una operación CRUD al lote
Descripción
$item
)La operación a añadir al lote.
Si $item causa que el lote alcance los límites » maxWriteBatchSize
o » maxBsonObjectSize, se creará internamente un nuevo lote y
todos los lotes se agruparán para enviar uno cada vez durante la llamada a MongoWriteBatch::execute().
Parámetros
-
item -
Cuando el lote actual es Argumento previsto MongoWriteBatch::COMMAND_INSERT El documento a añadir MongoWriteBatch::COMMAND_UPDATE Operación de acualización sin tratar. Las claves requeridas son: array("q" => array("criterios"), "u" => array("nuevos datos"))
Opcionalmente con las claves "multi" "upsert" como valores booleanos
"upsert": Si se establece a true, crea un nuevo documento cuando ningún documento coincida con los criterios. El valor predeterminado es false, el cual no inserta un nuevo documento cuando no haya coincidencias.
MongoWriteBatch::COMMAND_DELETE Operación de eliminación sin tratar. Las claves requeridas son: array("q" => array("criterios"), "limit" => 1)
Valores devueltos
Devuelve TRUE en caso de éxito, y lanza una excecpión en case de error.
Errores/Excepciones
Ejemplos
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));
?>