Learn the "why" behind slow queries and how to fix them in our 2-Part Webinar.
Register now >
Docs Menu
Docs Home
/ /

MongoDB\Collection::bulkWrite()

MongoDB\Collection::bulkWrite()

Ejecuta múltiples operaciones de escritura.

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()Operaciones,,,, y en la siguiente estructura de MongoDB\Collection::updateOne() matriz:

[
[ '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

Una matriz 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 es true, permite que la operación de escritura evite la validación a nivel de documento. El valor predeterminado 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.

El valor predeterminado es el códec de la colección. La herencia de la opción predeterminada codec prevalece 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 generador de perfiles de base de datos, la salidacurrentOp y los 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 es compatible con versiones de servidor anteriores a 5.0 y, si se utiliza, generará una excepción en el momento de ejecución.

Novedades en la versión 1.13.

ordenado

booleano

Si true: cuando falla una sola escritura, la operación se detendrá sin realizar las escrituras restantes y lanzará una excepción.

Si false: Cuando un solo guardado falla, la operación continuará con los guardados restantes, si los hay, y lanzará una excepción.

El valor es por defecto true.

sesión

Sesión de cliente para asociar a 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 una preocupación de escritura para operaciones individuales como parte de una transacción. En su lugar, configure la writeConcern opción al iniciar la transacción.

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

MongoDB\Exception\UnsupportedException si se utilizan opciones que no son compatibles con el servidor seleccionado (porcollation readConcernwriteConcernejemplo,,,).

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. Puede inspeccionar el valor devuelto por getWriteResult() para determinar la naturaleza del error.

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

Si se lanza una MongoDB\Driver\Exception\BulkWriteException, puedes llamar a getWriteResult() e inspeccionar el objeto devuelto MongoDB\Driver\WriteResult para determinar la naturaleza del error.

Por ejemplo, es posible que una operación de escritura se haya ejecutado correctamente en el servidor principal, pero no haya solucionado el problema (p. ej., la replicación tardó demasiado). También es posible que una operación de escritura haya fallado por completo (p. ej., violación de clave única).

En el caso de una escritura masiva, el resultado podría indicar múltiples operaciones de escritura exitosas o errores. Si la opción ordered es true, es posible que algunas operaciones se hayan realizado correctamente antes de que se encontrara el primer error y se lanzara la excepción. Si la opción ordered es false, es posible que se hayan encontrado múltiples errores.

Volver

aggregate()

En esta página