MongoDB\Driver\BulkWrite::__construct

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::__construct — CrĂ©er un nouveau BulkWrite

Description

public function MongoDB\Driver\BulkWrite::__construct(?array $options = null)

Construit un nouveau MongoDB\Driver\BulkWrite, qui est un objet mutable auquel une ou plusieurs opĂ©rations d'Ă©criture peuvent ĂȘtre ajoutĂ©es. Les Ă©critures peuvent ensuite ĂȘtre exĂ©cutĂ©es avec MongoDB\Driver\Manager::executeBulkWrite().

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. Cette option est disponible dans MongoDB 3.2+ et est ignorée pour les anciennes versions du serveur, qui ne prennent pas en charge la validation au niveau du document. false
comment mixed Un commentaire arbitraire pour aider à tracer l'opération à travers le profil du serveur de base de données, la sortie currentOp et les journaux. Cette option est disponible dans MongoDB 4.4+ et entraßnera une exception au moment de l'exécution si elle est spécifiée pour une version de serveur plus ancienne.
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 Les opĂ©rations ordonnĂ©es (true) sont exĂ©cutĂ©es sĂ©quentiellement sur le serveur MongoDB, tandis que les opĂ©rations non ordonnĂ©es (false) sont envoyĂ©es au serveur dans un ordre arbitraire et peuvent ĂȘtre exĂ©cutĂ©es en parallĂšle. true

Erreurs / Exceptions

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

Historique

Version Description
PECL mongodb 1.14.0 Ajout des options "comment" et "let".
PECL mongodb 1.1.0 Ajout de l'option "bypassDocumentValidation".

Exemples

Exemple #1 Exemple 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();

// VĂ©rifie si l'Ă©criture n'a pas pu ĂȘtre effectuĂ©e
if ($writeConcernError = $result->getWriteConcernError()) {
printf("%s (%d): %s\n",
$writeConcernError->getMessage(),
$writeConcernError->getCode(),
var_export($writeConcernError->getInfo(), true)
);
}

// Vérifie si certaines opérations d'écriture n'ont pas été effectuées du tout
foreach ($result->getWriteErrors() as $writeError) {
printf("Operation#%d: %s (%d)\n",
$writeError->getIndex(),
$writeError->getMessage(),
$writeError->getCode()
);
}
} catch (
MongoDB\Driver\Exception\Exception $e) {
printf("Other 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());

?>

L'exemple ci-dessus va afficher :

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

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.