(mongodb >=2.1.0)
MongoDB\Driver\BulkWriteCommand::__construct — Crea un nuevo BulkWriteCommand
Construye un nuevo MongoDB\Driver\BulkWriteCommand, que puede usarse para realizar muchas operaciones de inserción, actualización y eliminación en múltiples colecciones en una sola petición usando 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 añadir todas las operaciones de escritura, este objeto puede ejecutarse con MongoDB\Driver\Manager::executeBulkWriteCommand().
options (array)
| Opción | Tipo | Descripción | Valor por omisión |
|---|---|---|---|
| bypassDocumentValidation | bool |
Si es true, permite que las operaciones de inserción y actualización
eviten la validación a nivel de documento.
|
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 de 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 $$var).
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 ejecutarse en el
orden en que fueron especificadas. Si es false, las escrituras
continuarán ejecutándose si una escritura individual falla. Si es
true, las escrituras se detendrán si una escritura individual falla.
|
true |
| verboseResults | bool | Si los resultados detallados de cada operación exitosa deben incluirse en el MongoDB\Driver\BulkWriteCommandResult devuelto. | false |
Ejemplo #1 Ejemplo de MongoDB\Driver\BulkWriteCommand::__construct()
<?php
$manager = new MongoDB\Driver\Manager;
$bulk = new MongoDB\Driver\BulkWriteCommand;
// Eliminar documentos de ambas colecciones
$bulk->deleteMany('db.coll_one', []);
$bulk->deleteMany('db.coll_two', []);
// Insertar documentos en dos colecciones
$bulk->insertOne('db.coll_one', ['_id' => 1]);
$bulk->insertOne('db.coll_two', ['_id' => 2]);
$bulk->insertOne('db.coll_two', ['_id' => 3]);
// Actualizar un documento en "coll_one"
$bulk->updateOne('db.coll_one', ['_id' => 1], ['$set' => ['x' => 1]]);
$result = $manager->executeBulkWriteCommand($bulk);
printf("Insertados %d documento(s)\n", $result->getInsertedCount());
printf("Actualizados %d documento(s)\n", $result->getModifiedCount());
?>El ejemplo anterior mostrará:
Insertados 3 documento(s) Actualizados 1 documento(s)