(mongodb >=2.1.0)
MongoDB\Driver\BulkWriteCommand::__construct — Create a new BulkWriteCommand
Constructs a new MongoDB\Driver\BulkWriteCommand, which may be used to perform many insert, update, and delete operations on multiple collections in a single request using the » bulkWrite command introduced in MongoDB 8.0. This differs from MongoDB\Driver\BulkWrite, which is supported by all server versions but limited to a single collection.
After all write operations have been added, this object may be executed with MongoDB\Driver\Manager::executeBulkWriteCommand().
options
(array)
Option | Type | Description | Default |
---|---|---|---|
bypassDocumentValidation | bool |
If |
false |
comment | mixed |
An arbitrary comment to help trace the operation through the database profiler, currentOp output, and logs. |
|
let | array|object |
Die Zuordnung von Parameternamen und -werten. Die Werte müssen Konstanten oder geschlossene Ausdrücke sein, die nicht auf Dokumentfelder verweisen. Auf die Parameter kann dann als Variablen im Kontext eines aggregierten Ausdrucks zugegriffen werden (z. B. Diese Option ist ab MongoDB 5.0 verfügbar. Wenn sie für eine ältere Serverversion angegeben wird, kommt es bei der Ausführung zu einer Exception. |
|
ordered | bool |
Whether the operations in this bulk write should be executed in
the order in which they were specified. If |
true |
verboseResults | bool |
Whether detailed results for each successful operation should be included in the returned MongoDB\Driver\BulkWriteCommandResult. |
false |
Beispiel #1 MongoDB\Driver\BulkWriteCommand::__construct() example
<?php
$manager = new MongoDB\Driver\Manager;
$bulk = new MongoDB\Driver\BulkWriteCommand;
// Delete documents from both collections
$bulk->deleteMany('db.coll_one', []);
$bulk->deleteMany('db.coll_two', []);
// Insert documents into two collections
$bulk->insertOne('db.coll_one', ['_id' => 1]);
$bulk->insertOne('db.coll_two', ['_id' => 2]);
$bulk->insertOne('db.coll_two', ['_id' => 3]);
// Update a document in "coll_one"
$bulk->updateOne('db.coll_one', ['_id' => 1], ['$set' => ['x' => 1]]);
$result = $manager->executeBulkWriteCommand($bulk);
printf("Inserted %d document(s)\n", $result->getInsertedCount());
printf("Updated %d document(s)\n", $result->getModifiedCount());
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Inserted 3 document(s) Updated 1 document(s)