MongoDB\Driver\Manager
PHP Manual

MongoDB\Driver\Manager::executeBulkWrite

(mongodb >=0.2.0)

MongoDB\Driver\Manager::executeBulkWriteExecute one or more write operations

Descripción

final public MongoDB\Driver\WriteResult MongoDB\Driver\Manager::executeBulkWrite ( string $namespace , MongoDB\Driver\BulkWrite $bulk [, MongoDB\Driver\WriteConcern $writeConcern ] )

Executes one or more write operations.

A MongoDB\Driver\BulkWrite can be constructed with multiple write operations of varying types (e.g. updates, deletes, and inserts). The driver will attempt to send similarly type operations to the server at the same time to optimize round trips.

Parámetros

namespace

Un espacio de nombres completamente cualificado (nombreBaseDatos.nombreColección)

bulk

The MongoDB\Driver\BulkWrite to execute.

writeConcern

Opcionalmente, un MongoDB\Driver\WriteConcern. Si no se proporciona, se empleará el valor del Asunto de escritura establecido por el URI de conexión de MongoDB.

Valores devueltos

Returns MongoDB\Driver\WriteResult on success, lanza una excepción (instanceof MongoDB\Driver\Exception) en caso de fallo.

Errores/Excepciones

Ejemplos

Ejemplo #1 MongoDB\Driver\Manager::executeBulkWrite() example

<?php
$bulk 
= new MongoDB\Driver\BulkWrite();

$bulk->insert(array("_id" => 1"x" => 1));
$bulk->insert(array("_id" => 2"x" => 2));

$bulk->update(array(  "x" => 2), array('$set' => array("x" => 1)), array("multi" => false"upsert" => false));
$bulk->update(array(  "x" => 3), array('$set' => array("x" => 3)), array("multi" => false"upsert" => true));
$bulk->update(array("_id" => 3), array('$set' => array("x" => 3)), array("multi" => false"upsert" => true));

$bulk->insert(array("_id" => 4"x" => 2));

$bulk->delete(array("x" => 1), array("limit" => 1));


$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY100);
$result $manager->executeBulkWrite("databaseName.collectionName"$bulk$writeConcern);

printf("Inserted %d document(s)\n"$result->getInsertedCount());
printf("Matched  %d document(s)\n"$result->getMatchedCount());
printf("Updated  %d document(s)\n"$result->getModifiedCount());
printf("Upserted %d document(s)\n"$result->getUpsertedCount());
printf("Deleted  %d document(s)\n"$result->getDeletedCount());

foreach (
$result->getUpsertedIds() as $index => $id) {
    
printf("upsertedId[%d]: "$index);
    
var_dump($id);
}

/* If the WriteConcern could not be fulfilled */
if ($writeConcernError $result->getWriteConcernError()) {
    
printf("%s (%d): %s\n"$writeConcernError->getMessage(), $writeConcernError->getCode(), var_export($writeConcernError->getInfo(), true));
}

/* If a write could not happen at all */
foreach ($result->getWriteErrors() as $writeError) {
    
printf("Operation#%d: %s (%d)\n"$writeError->getIndex(), $writeError->getMessage(), $writeError->getCode());
}
?>

El resultado del ejemplo sería algo 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(BSON\ObjectID)#5 (1) {
  ["oid"]=>
  string(24) "54d3adc3ce7a792f4d703756"
}
upsertedId[4]: int(3)

Ver también


MongoDB\Driver\Manager
PHP Manual