Php/docs/mongodb-driver-bulkwrite.construct

From Get docs

MongoDB\Driver\BulkWrite::__construct

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::__constructCreate a new BulkWrite


Description

public MongoDB\Driver\BulkWrite::__construct ([ array $options ] )

Constructs a new MongoDB\Driver\BulkWrite, which is a mutable object to which one or more write operations may be added. The write(s) may then be executed with MongoDB\Driver\Manager::executeBulkWrite().


Parameters

options (array)
{| |+ options !width="25%"| Option !width="25%"| Type !width="25%"| Description !width="25%"| Default |- | bypassDocumentValidation | bool |

If TRUE, allows insert and update operations to circumvent document level validation.

This option is available in MongoDB 3.2+ and is ignored for older server versions, which do not support document level validation.

| FALSE |- | ordered | bool | Ordered operations (TRUE) are executed serially on the MongoDB server, while unordered operations (FALSE) are sent to the server in an arbitrary order and may be executed in parallel. | TRUE |}


Errors/Exceptions


Changelog

Version Description
PECL mongodb 1.1.0 Added the "bypassDocumentValidation" option.


Examples

Example #1 MongoDB\Driver\BulkWrite::__construct() example

<?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);} catch (MongoDB\Driver\Exception\BulkWriteException $e) {    $result = $e->getWriteResult();    // Check if the write concern could not be fulfilled    if ($writeConcernError = $result->getWriteConcernError()) {        printf("%s (%d): %s\n",            $writeConcernError->getMessage(),            $writeConcernError->getCode(),            var_export($writeConcernError->getInfo(), true)        );    }    // Check if any write operations did not complete at all    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());?>

The above example will output:


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

See Also