MongoDB\Driver\BulkWrite::update

Add an update operation to the bulk

&reftitle.description; public `void` `MongoDB\Driver\BulkWrite::update` ``array``object```filter` ``array``object```newObj` ``array``null```updateOptions`&null;

Adds an update operation to the `MongoDB\Driver\BulkWrite`.

&reftitle.parameters;
&mongodb.parameter.filter;

`newObj` (``array``object``)

- A document containing either update operators (e.g. `$set`), a replacement document (i.e. only `field:value` expressions), or an aggregation pipeline.

`updateOptions`

- ## updateOptions

  Option | Type | Description | Default
  arrayFilters | `array` | An array of filter documents that determines which array elements to modify for an update operation on an array field. See Specify arrayFilters for Array Update Operations in the MongoDB manual for more information. This option is available in MongoDB 3.6+ and will result in an exception at execution time if specified for an older server version.
  &mongodb.option.collation;
  hint | ``string``array``object`` | Index specification. Specify either the index name as a string or the index key pattern. If specified, then the query system will only consider plans using the hinted index. This option is available in MongoDB 4.2+ and will result in an exception at execution time if specified for an older server version.
  multi | `bool` | Update only the first matching document if &false;, or all matching documents &true;. This option cannot be &true; if `newObj` is a replacement document. | &false;
  upsert | `bool` | If `filter` does not match an existing document, insert a single document. The document will be created from `newObj` if it is a replacement document (i.e. no update operators); otherwise, the operators in `newObj` will be applied to `filter` to create the new document. | &false;

&reftitle.returnvalues;

&return.void;

&reftitle.errors;

&mongodb.throws.argumentparsing;

&reftitle.changelog;

&Version; | &Description;
PECL mongodb 1.7.0 | Added the `"hint"` option.
PECL mongodb 1.6.0 | The `newObj` parameter now accepts an aggregation pipeline. This feature requires MongoDB 4.2+ and will result in an exception at execution time if specified for an older server version.
PECL mongodb 1.5.0 | Using the `"arrayFilters"` option will result in an exception at execution time if unsupported by the server. Previously, no exception would be thrown and the option may have been ignored.
PECL mongodb 1.4.0 | Added the `"arrayFilters"` option.
PECL mongodb 1.2.0 | Added the `"collation"` option.

&reftitle.examples;

### `MongoDB\Driver\BulkWrite::update` example

    <?php

    $bulk = new MongoDB\Driver\BulkWrite;
    $bulk->update(
        ['x' => 2],
        ['$set' => ['y' => 3]],
        ['multi' => false, 'upsert' => false]
    );

    $manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
    $result = $manager->executeBulkWrite('db.collection', $bulk);

    ?>

&reftitle.seealso;

- `MongoDB\Driver\Manager::executeBulkWrite`
- `MongoDB\Driver\WriteResult`