# MongoDB\Driver\BulkWriteCommand::__construct

(mongodb >=2.1.0)

MongoDB\Driver\BulkWriteCommand::__construct — Créer une nouvelle BulkWriteCommand

### Description

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

Construit une nouvelle MongoDB\Driver\BulkWriteCommand, qui peut être utilisée pour effectuer de nombreuses opération d'insertions, mises à jour et suppression 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 toutes les opérations d'écriture ont été ajoutées, cet objet peut être exécuté avec MongoDB\Driver\Manager::executeBulkWriteCommand().

### Liste de paramètres

`options` (array)

  options
  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`

### Erreurs / Exceptions

- Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

### Exemples

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é mise à jour(s)\n", $result->getModifiedCount());
?>`

L'exemple ci-dessus va afficher :

    3 document(s) ont été inséré(s)
    1 document(s) ont été mise à jour(s)

### Voir aussi

- MongoDB\Driver\Manager::executeBulkWriteCommand() - Execute les opérations d'écriture en utilisant la commande bulkWrite
- MongoDB\Driver\BulkWriteCommandResult