Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

MongoDB\Collection::bulkWrite()

MongoDB\Collection::bulkWrite()

Ejecuta múltiples operaciones de guardado.

function bulkWrite(
array $operations,
array $options = []
): MongoDB\BulkWriteResult
$operations : arreglo

Un arreglo que contiene las operaciones de guardado a realizar. MongoDB\Collection::bulkWrite() apoya MongoDB\Collection::deleteMany(), MongoDB\Collection::deleteOne(), MongoDB\Collection::insertOne(), MongoDB\Collection::replaceOne(), MongoDB\Collection::updateMany() y MongoDB\Collection::updateOne() operaciones en la siguiente estructura de arreglo:

[
[ 'deleteMany' => [ $filter ] ],
[ 'deleteOne' => [ $filter ] ],
[ 'insertOne' => [ $document ] ],
[ 'replaceOne' => [ $filter, $replacement, $options ] ],
[ 'updateMany' => [ $filter, $update, $options ] ],
[ 'updateOne' => [ $filter, $update, $options ] ],
]

Los argumentos corresponden a los respectivos métodos de operación. Sin embargo, la opción writeConcern se especifica como una opción de nivel superior para MongoDB\Collection::bulkWrite() en lugar de cada operación individual.

$options : arreglo

Un arreglo que especifica las opciones deseadas.

Nombre
Tipo
Descripción

builderEncoder

MongoDB\Codec\Encoder

Codificadora que se va a usar para los desarrolladores de query y agregaciones. Si no se establece, esta opción será por defecto una nueva instancia de la clase MongoDB\Builder\BuilderEncoder.

Nuevo en la versión 1.21.

bypassDocumentValidation

booleano

Si true, permite que la operación de guardar eluda la validación a nivel de documento. Por defecto es false.

códec

MongoDB\Codec\DocumentCodec

Codifica datos con códecs de tipos para codificar o decodificar documentos. Esta opción es mutuamente excluyente con la opción typeMap.

Se configura de forma predeterminada al códec de la colección. La herencia para una opción codec por defecto tiene prioridad sobre la de la opción typeMap.

Los guardados en lote utilizan el códec para las operaciones insertOne y replaceOne.

Novedad en la versión 1.17.

comment

mixto

Permite a los usuarios especificar un comentario arbitrario para ayudar a rastrear la operación a través del perfilador de bases de datos, la salida actualOp() y registros.

Esta opción está disponible desde MongoDB 4.4 y, si se especifica para una versión de servidor anterior, dará lugar a una excepción en tiempo de ejecución.

Novedades en la versión 1.13.

permitir

arreglo|objeto

Mapa de nombres de parámetros y valores. Los valores deben ser expresiones constantes o cerradas que no hagan referencia a los campos del documento. Posteriormente, se puede acceder a los parámetros como variables en el contexto de una expresión de agregación (por ejemplo, $$var).

Esto no está soportado para versiones del servidor anteriores a la 5.0 y resultará en una excepción en el momento de la ejecución si se usa.

Novedades en la versión 1.13.

ordenado

booleano

Si true: cuando un solo guardado falla, la operación se detendrá sin realizar los guardados restantes y lanzará una excepción.

Si false: cuando una sola acción de guardar falla, la operación continuará con las acciones de guardar restantes, si las hay, y lanzará una excepción.

El valor es por defecto true.

sesión

Sesión de cliente para asociar con la operación.

Nueva en la versión 1.3.

writeConcern

nivel de confirmación de escritura (write concern) a usar en la operación. Por defecto, se aplica el nivel de confirmación de escritura (write concern) de la colección.

No es posible especificar un nivel de confirmación de escritura (write concern) para operaciones individuales como parte de una transacción. En su lugar, configura la opción writeConcern al iniciar la transacción.

Un objeto MongoDB\BulkWriteResult, que encapsula un objeto MongoDB\Driver\WriteResult.

MongoDB\Exception\UnsupportedException si se usan opciones que no sean compatibles con el servidor seleccionado (p. ej. collation, readConcern, writeConcern).

MongoDB\Exception\InvalidArgumentException por errores relacionados con el análisis de parámetros u opciones.

MongoDB\Driver\Exception\BulkWriteException para errores relacionados con la operación de escritura. Los usuarios deben inspeccionar el valor devuelto por getWriteResult() para determinar la naturaleza del error.

MongoDB\Driver\Exception\RuntimeException para otros errores a nivel de extensión (por ejemplo, " errores de conexión).

Si se lanza un MongoDB\Driver\Exception\BulkWriteException, los usuarios deben llamar a getWriteResult() e inspeccionar el MongoDB\Driver\WriteResult objeto retornado para determinar la naturaleza del error.

Por ejemplo, una operación de escritura puede haberse aplicado correctamente al servidor principal, pero no haber satisfecho el nivel de confirmación de escritura (write concern) (por ejemplo, la replicación tomó demasiado tiempo). Como alternativa, puede que una operación de guardar haya fallado por completo (por ejemplo, violación de clave única).

En el caso de una escritura masiva, el resultado puede indicar múltiples operaciones de guardado exitosas y/o errores. Si la opción ordered está true, algunas operaciones pueden haberse realizado con éxito antes de que se encontrara el primer error y se lanzara la excepción. Si la opción ordered es false, pueden haberse producido múltiples errores.

Volver

aggregate()

En esta página