(mongodb >=2.1.0)
MongoDB\Driver\BulkWriteCommand::__construct — Crear una nueva BulkWriteCommand
Construye una nueva MongoDB\Driver\BulkWriteCommand, que puede ser utilizada para realizar múltiples operaciones de inserción, actualización y eliminación en varias colecciones en una sola petición utilizando el comando » bulkWrite introducido en MongoDB 8.0. Esto difiere de MongoDB\Driver\BulkWrite, que es compatible con todas las versiones del servidor pero limitado a una sola colección.
Después de que todas las operaciones de escritura hayan sido añadidas, este objeto puede ser ejecutado con MongoDB\Driver\Manager::executeBulkWriteCommand().
options
(array)
Opción | Tipo | Descripción | Por omisión |
---|---|---|---|
bypassDocumentValidation | bool |
Si |
false |
comment | mixed |
Un comentario arbitrario para ayudar a rastrear la operación a través del perfilador de la base de datos, la salida currentOp y los registros. |
|
let | array|object |
Diccionario de nombres y valores de parámetros. Los valores deben ser constantes o expresiones cerradas que no hagan referencia a campos del documento. Los parámetros pueden ser accedidos luego como variables en un contexto de expresión agregada (por ejemplo Esta opción está disponible en MongoDB 5.0+ y resultará en una excepción en tiempo de ejecución si es especificada para una versión anterior del servidor. |
|
ordered | bool |
Si las operaciones en esta escritura masiva deben ser ejecutadas en el
orden en que fueron especificadas. Si |
true |
verboseResults | bool |
Si los detalles de los resultados de cada operación exitosa deben ser incluidos en el resultado en la MongoDB\Driver\BulkWriteCommandResult retornada. |
false |
Ejemplo #1 Ejemplo de MongoDB\Driver\BulkWriteCommand::__construct()
<?php
$manager = new MongoDB\Driver\Manager;
$bulk = new MongoDB\Driver\BulkWriteCommand;
// Elimina los documentos de dos colecciones
$bulk->deleteMany('db.coll_one', []);
$bulk->deleteMany('db.coll_two', []);
// Añade los documentos a dos colecciones
$bulk->insertOne('db.coll_one', ['_id' => 1]);
$bulk->insertOne('db.coll_two', ['_id' => 2]);
$bulk->insertOne('db.coll_two', ['_id' => 3]);
// Modifica un documento en "coll_one"
$bulk->updateOne('db.coll_one', ['_id' => 1], ['$set' => ['x' => 1]]);
$result = $manager->executeBulkWriteCommand($bulk);
printf("%d documento(s) han sido insertado(s)\n", $result->getInsertedCount());
printf("%d documento(s) han sido actualizado(s)\n", $result->getModifiedCount());
?>
El ejemplo anterior mostrará :
3 documento(s) han sido insertado(s) 1 documento(s) han sido actualizado(s)