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

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.