MongoDB\Driver\Manager::executeBulkWrite
En esta página
MongoDB\Driver\Manager::executeBulkWrite
Ejecuta una o varias operaciones de escritura
Descripción#
final public MongoDB\Driver\Manager::executeBulkWrite(string $namespace, MongoDB\Driver\BulkWrite $bulk, [array $options]): MongoDB\Driver\WriteResult
```php
Ejecuta una o varias operaciones de escritura en el servidor primario.
Un `MongoDB\Driver\BulkWrite` puede ser construido con una o varias operaciones de escritura de tipos variados (por ejemplo, actualizaciones, eliminaciones e inserciones). El controlador intentará enviar las operaciones del mismo tipo al servidor en el menor número de solicitudes posible para optimizar los intercambios.
El valor por omisión de la opción `"writeConcern"` será deducido a partir de una transacción activa (indicada por la opción `"session"`), seguida de la [URI de conexión](#mongodb-driver-manager.construct-uri).
## Parámetros
`namespace` (`string`)
Un espacio de nombres completamente calificado (ej. `"databaseName.collectionName"`)
`bulk` (`MongoDB\Driver\BulkWrite`)
Escritura(s) a ejecutar.
`options`
| Opción | Tipo | Descripción |
|----|----|----|
| session | `MongoDB\Driver\Session` | Una sesión a asociar a la operación. |
| writeConcern | `MongoDB\Driver\WriteConcern` | Una preocupación de escritura a aplicar a la operación. |
options
## Valores devueltos
Retorna un `MongoDB\Driver\WriteResult` en caso de éxito.
## Errores/Excepciones
Lanza una
MongoDB\Driver\Exception\InvalidArgumentException
si
bulk
no contiene ninguna operación de escritura.
Lanza una
MongoDB\Driver\Exception\InvalidArgumentException
si
bulk
ya ha sido ejecutado. Los objetos
MongoDB\Driver\BulkWrite
no pueden ser ejecutados varias veces.
Lanza una excepción
MongoDB\Driver\Exception\InvalidArgumentException
si la opción
"session"
se utiliza junto con una preocupación de escritura no reconocida.
Lanza una excepción
MongoDB\Driver\Exception\InvalidArgumentException
en caso de error durante el análisis de un argumento.
Lanza una excepción
MongoDB\Driver\Exception\ConnectionException
si la conexión al servidor falla por una razón distinta a un problema de identificación
Lanza una excepción
MongoDB\Driver\Exception\AuthenticationException
si se requiere una identificación pero falla
Lanza una excepción
MongoDB\Driver\Exception\BulkWriteException
en caso de error de una operación de escritura (un error WriteError y WriteConcern)
Lanza una
MongoDB\Driver\Exception\RuntimeException
en caso de otros errores.
## Historial de cambios
| Versión | Descripción |
|----|----|
| PECL mongodb 2.0.0 | El parámetro `options` ya no acepta una instancia de `MongoDB\Driver\WriteConcern`. |
| PECL mongodb 1.21.0 | Pasar un objeto `MongoDB\Driver\WriteConcern` como `options` está obsoleto y será eliminado en la versión 2.0. |
| PECL mongodb 1.4.4 | Se lanzará una `MongoDB\Driver\Exception\InvalidArgumentException` si la opción `"session"` se utiliza en combinación con un `"writeConcern"` no-acknowledged. |
| PECL mongodb 1.4.0 | El tercer parámetro es ahora un array de `options`. Por razones de compatibilidad ascendente, este parámetro siempre aceptará un objeto `MongoDB\Driver\WriteConcern`. |
| PECL mongodb 1.3.0 | Se lanza una `MongoDB\Driver\Exception\InvalidArgumentException` si `bulk` no contiene ninguna operación de escritura. Anteriormente, se lanzaba una `MongoDB\Driver\Exception\BulkWriteException`. |
## Ejemplos
Ejemplo de `MongoDB\Driver\Manager::executeBulkWrite`
```php
Resultado del ejemplo anterior es similar a:
Inserted 3 document(s)
Matched 1 document(s)
Updated 1 document(s)
Upserted 2 document(s)
Deleted 1 document(s)
upsertedId[3]: object(MongoDB\BSON\ObjectId)#5 (1) {
["oid"]=>
string(24) "54d3adc3ce7a792f4d703756"
}
upsertedId[4]: int(3)
Véase también#
MongoDB\Driver\BulkWrite
MongoDB\Driver\WriteResult
MongoDB\Driver\WriteConcern
MongoDB\Driver\Server::executeBulkWrite