(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 |
Карта назв і значень параметрів. Значення мають бути константами
або закритими виразами, які не посилаються на поля документа. Тоді
параметри можуть бути доступні як змінні в контексті агрегатного
виразу (напр. Цей параметр доступний у MongoDB 5.0+, тож його застосування у старіших версіях викине виключення під час виконання. |
|
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 |
Приклад #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());
?>
Поданий вище приклад виведе:
Inserted 3 document(s) Updated 1 document(s)