(mongodb >=2.1.0)
MongoDB\Driver\BulkWriteCommand::__construct â CrĂ©er une nouvelle BulkWriteCommand
Construit une nouvelle MongoDB\Driver\BulkWriteCommand, qui peut ĂȘtre utilisĂ©e pour effectuer de nombreuses opĂ©rations d'insertions, de mises Ă jour et de suppressions sur plusieurs collections dans une seule requĂȘte Ă l'aide de la commande » bulkWrite introduite dans MongoDB 8.0. Cela diffĂšre de MongoDB\Driver\BulkWrite, qui est supportĂ© par toutes les versions du serveur mais limitĂ© Ă une seule collection.
AprĂšs que toutes les opĂ©rations d'Ă©criture ont Ă©tĂ© ajoutĂ©es, cet objet peut ĂȘtre exĂ©cutĂ© avec MongoDB\Driver\Manager::executeBulkWriteCommand().
options (array)
| Option | Type | Description | Défaut |
|---|---|---|---|
| bypassDocumentValidation | bool |
Si true, permet aux opérations d'insertion et de mise à jour de contourner
la validation au niveau du document.
|
false |
| comment | mixed | Un commentaire arbitraire pour aider à tracer l'opération à travers le profileur de base de données, la sortie currentOp et les journaux. | |
| let | array|object |
Dictionnaire des noms et des valeurs des paramĂštres. Les valeurs doivent ĂȘtre des constantes ou des expressions fermĂ©es qui ne font pas rĂ©fĂ©rence aux champs du document. Les paramĂštres peuvent ensuite ĂȘtre accĂ©dĂ©s en tant que variables dans un contexte d'expression agrĂ©gĂ©e (par exemple $$var).
Cette option est disponible dans MongoDB 5.0+ et entraßnera une exception au moment de l'exécution si elle est spécifiée pour une version antérieure du serveur.
|
|
| ordered | bool |
Si les opĂ©rations dans cette Ă©criture groupĂ©e doivent ĂȘtre exĂ©cutĂ©es dans
l'ordre dans lequel elles ont été spécifiées. Si false, les écritures
continueront Ă ĂȘtre exĂ©cutĂ©es si une Ă©criture individuelle Ă©choue. Si true,
les Ă©critures s'arrĂȘteront si une Ă©criture individuelle Ă©choue.
|
true |
| verboseResults | bool | Si les dĂ©tails des rĂ©sultats de chaque opĂ©ration rĂ©ussie doivent ĂȘtre inclus dans le rĂ©sultat dans la MongoDB\Driver\BulkWriteCommandResult retournĂ©e. | false |
Exemple #1 Exemple de MongoDB\Driver\BulkWriteCommand::__construct()
<?php
$manager = new MongoDB\Driver\Manager;
$bulk = new MongoDB\Driver\BulkWriteCommand;
// Supprime les documents de deux collections
$bulk->deleteMany('db.coll_one', []);
$bulk->deleteMany('db.coll_two', []);
// Ajoute les documents de deux collections
$bulk->insertOne('db.coll_one', ['_id' => 1]);
$bulk->insertOne('db.coll_two', ['_id' => 2]);
$bulk->insertOne('db.coll_two', ['_id' => 3]);
// Modifie un document dans "coll_one"
$bulk->updateOne('db.coll_one', ['_id' => 1], ['$set' => ['x' => 1]]);
$result = $manager->executeBulkWriteCommand($bulk);
printf("%d document(s) ont été inséré(s)\n", $result->getInsertedCount());
printf("%d document(s) ont été mis à jour(s)\n", $result->getModifiedCount());
?>L'exemple ci-dessus va afficher :
3 document(s) ont été inséré(s) 1 document(s) ont été mis à jour(s)