MongoDB\Driver\Manager: : executeBulkWrite
(mongodb >=1.0.0)
MongoDB\Driver\Manager::executeBulkWrite — Execute one or more write operations
Description
$namespace
, MongoDB\Driver\BulkWrite $bulk
[, array $options
= array()
] ) : MongoDB\Driver\WriteResultExecutes one or more write operations on the primary server.
A MongoDB\Driver\BulkWrite can be constructed with one or more write operations of varying types (e.g. updates, deletes, and inserts). The driver will attempt to send operations of the same type to the server in as few requests as possible to optimize round trips.
Liste de paramètres
-
namespace
(string) -
Un espace de noms totalement qualifié (e.g. "databaseName.collectionName")
-
bulk
(MongoDB\Driver\BulkWrite) -
Écriture(s) à exécuter.
-
options
-
options Option Type Description session MongoDB\Driver\Session Une session à associer à l'opération.
writeConcern MongoDB\Driver\WriteConcern Une préoccupation d'écriture à appliquer à l'opération.
Erreurs / Exceptions
- Throws MongoDB\Driver\Exception\InvalidArgumentException if
bulk
does not contain any write operations. - Lance une exception MongoDB\Driver\Exception\InvalidArgumentException si l'option "session" est utilisée conjointement avec une préoccupation d'écriture non reconnu.
- Lance une exception MongoDB\Driver\AuthenticationException si une identification est nécessaire mais qu'elle échoue
- Lance une exception MongoDB\Driver\ConnectionException si la connexion au serveur échoue pour une autre raison qu'en raison d'un problème d'identification
- Lance une exception MongoDB\Driver\BulkWriteException lors d'une erreur d'une opération en écriture (une erreur WriteError et WriteConcern)
- Throws MongoDB\Driver\Exception\RuntimeException on other errors.
Historique
Version | Description |
---|---|
1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern. |
1.4.0 |
The third parameter is now an options array.
For backwards compatibility, this paramater will still accept a
MongoDB\Driver\WriteConcern object.
|
1.3.0 |
MongoDB\Driver\Exception\InvalidArgumentException
is now thrown if bulk does not contain any write
operations. Previously, a
MongoDB\Driver\Exception\BulkWriteException was
thrown.
|
Exemples
Exemple #1 MongoDB\Driver\Manager::executeBulkWrite() example
<?php
$bulk = new MongoDB\Driver\BulkWrite();
$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);
$bulk->update(['x' => 2], ['$set' => ['x' => 1]], ['multi' => false, 'upsert' => false]);
$bulk->update(['x' => 3], ['$set' => ['x' => 3]], ['multi' => false, 'upsert' => true]);
$bulk->update(['_id' => 3], ['$set' => ['x' => 3]], ['multi' => false, 'upsert' => true]);
$bulk->insert(['_id' => 4, 'x' => 2]);
$bulk->delete(['x' => 1], ['limit' => 1]);
$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 100);
$result = $manager->executeBulkWrite('db.collection', $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());
}
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
Inserted 3 document(s) Matched 1 document(s) Updated 1 document(s) Upserted 2 document(s) Deleted 1 document(s) upsertedId[3]: object(MongoDB\BSON\ObjectId)#5 (1) { ["oid"]=> string(24) "54d3adc3ce7a792f4d703756" } upsertedId[4]: int(3)
Voir aussi
- MongoDB\Driver\BulkWrite
- MongoDB\Driver\WriteResult
- MongoDB\Driver\WriteConcern
- MongoDB\Driver\Server::executeBulkWrite() - Exécute une ou plusieurs opérations d'écriture sur ce serveur
Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-mongodb-driver-manager.executebulkwrite.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.