PHP 8.5.0 Alpha 2 available for testing

MongoDB\Driver\BulkWrite::__construct

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::__constructCrear 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 escrituras pueden ser ejecutadas posteriormente con MongoDB\Driver\Manager::executeBulkWrite().

Parámetros

options (array)

options
Option Type Description Defaut
bypassDocumentValidation bool

Si true, permite que las operaciones de inserción y actualización contorneen la validación a nivel de documento.

Esta opción está disponible en MongoDB 3.2+ y es ignorada para las versiones anteriores del servidor, que no soportan la validación a nivel de documento.

false
comment mixed

Un comentario arbitrario para ayudar a trazar la operación a través del perfil del servidor de base de datos, la salida currentOp y los registros.

Esta opción está disponible en MongoDB 4.4+ y lanzará una excepción en el momento de la ejecución si se especifica para una versión de servidor más antigua.

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) son ejecutadas secuencialmente en el servidor 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 Adición de las opciones "comment" y "let".
PECL mongodb 1.1.0 Adición de 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();

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

// Verifica si algunas operaciones de escritura no fueron realizadas
foreach ($result->getWriteErrors() as $writeError) {
printf("Operation#%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("Inserted %d document(s)\n", $result->getInsertedCount());
printf("Updated %d document(s)\n", $result->getModifiedCount());
printf("Upserted %d document(s)\n", $result->getUpsertedCount());
printf("Deleted %d document(s)\n", $result->getDeletedCount());

?>

El ejemplo anterior mostrará :

Inserted 2 document(s)
Updated  1 document(s)
Upserted 1 document(s)
Deleted  1 document(s)

Ver también

add a note

User Contributed Notes

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