Longhorn PHP 2026 - Call For Papers

MongoDB\Driver\BulkWrite::__construct

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::__constructCrea un nuevo BulkWrite

Descripción

public MongoDB\Driver\BulkWrite::__construct(?array $options = null)

Construye un nuevo MongoDB\Driver\BulkWrite, que es un objeto mutable al cual se pueden añadir una o más operaciones de escritura. Las escritura(s) pueden entonces ser ejecutadas con MongoDB\Driver\Manager::executeBulkWrite().

Parámetros

options (array)

options
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. Esta opción está disponible en MongoDB 3.2+ y es ignorada en versiones anteriores del servidor, que no soportan 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 currentOp y los registros. Esta opción está disponible en MongoDB 4.4+ y generará una excepción en tiempo de ejecución si se especifica para una versión anterior del servidor.
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 Las operaciones ordenadas (true) se ejecutan de forma serial en el servidor de MongoDB, mientras que las operaciones no ordenadas (false) son enviadas al servidor en un orden arbitrario y pueden ser ejecutadas en paralelo. true

Errores/Excepciones

  • Lanza una excepción MongoDB\Driver\InvalidArgumentException en caso de error durante el análisis de un argumento.

Historial de cambios

Versión Descripción
PECL mongodb 1.14.0 Se añadieron las opciones "comment" y "let".
PECL mongodb 1.1.0 Se añadió la opción "bypassDocumentValidation".

Ejemplos

Ejemplo #1 Ejemplo de MongoDB\Driver\BulkWrite::__construct()

<?php

$bulk
= new MongoDB\Driver\BulkWrite(['ordered' => true]);
$bulk->delete([]);
$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);
$bulk->update(
[
'x' => 2],
[
'$set' => ['x' => 1]],
[
'limit' => 1, 'upsert' => false]
);
$bulk->delete(['x' => 1], ['limit' => 1]);
$bulk->update(
[
'_id' => 3],
[
'$set' => ['x' => 3]],
[
'limit' => 1, 'upsert' => true]
);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(1);

try {
$result = $manager->executeBulkWrite('db.collection', $bulk, ['writeConcern' => $writeConcern]);
} catch (
MongoDB\Driver\Exception\BulkWriteException $e) {
$result = $e->getWriteResult();

// Comprobar si la preocupación de escritura no pudo ser cumplida
if ($writeConcernError = $result->getWriteConcernError()) {
printf("%s (%d): %s\n",
$writeConcernError->getMessage(),
$writeConcernError->getCode(),
var_export($writeConcernError->getInfo(), true)
);
}

// Comprobar si alguna operación de escritura no se completó en absoluto
foreach ($result->getWriteErrors() as $writeError) {
printf("Operación#%d: %s (%d)\n",
$writeError->getIndex(),
$writeError->getMessage(),
$writeError->getCode()
);
}
} catch (
MongoDB\Driver\Exception\Exception $e) {
printf("Otro error: %s\n", $e->getMessage());
exit;
}

printf("Insertados %d documento(s)\n", $result->getInsertedCount());
printf("Actualizados %d documento(s)\n", $result->getModifiedCount());
printf("Incluidos %d documento(s)\n", $result->getUpsertedCount());
printf("Eliminados %d documento(s)\n", $result->getDeletedCount());

?>

El ejemplo anterior mostrará:

Insertados 2 documento(s)
Actualizados  1 documento(s)
Incluidos 1 documento(s)
Eliminados  1 documento(s)

Ver también

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top