---
name: "MongoDB::BulkWriteView"
section: "3pm"
platform: "linux"
package: "libmongodb-perl"
version: "2.2.2-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/MongoDB::BulkWriteView"
---

# MongoDB::BulkWriteView(3pm)

Bulk write operations against a query document

## NAME

MongoDB::BulkWriteView - Bulk write operations against a query document

## VERSION

version v2.2.2

## SYNOPSIS

```
    my $bulk = $collection->initialize_ordered_bulk_op;
    # Update one document matching the selector
    bulk->find( { a => 1 } )->update_one( { '$inc' => { x => 1 } } );
    # Update all documents matching the selector
    bulk->find( { a => 2 } )->update_many( { '$inc' => { x => 2 } } );
    # Update all documents matching the selector, with respect to a collation
    bulk->find( { a => { '$gte' => 'F' } )->collation($collation)
          ->update_many( { '$inc' => { x => 2 } } );
    # Update all documents
    bulk->find( {} )->update_many( { '$inc' => { x => 2 } } );
    # Replace entire document (update with whole doc replace)
    bulk->find( { a => 3 } )->replace_one( { x => 3 } );
    # Update one document matching the selector or upsert
    bulk->find( { a => 1 } )->upsert()->update_one( { '$inc' => { x => 1 } } );
    # Update all documents matching the selector or upsert
    bulk->find( { a => 2 } )->upsert()->update_many( { '$inc' => { x => 2 } } );
    # Replaces a single document matching the selector or upsert
    bulk->find( { a => 3 } )->upsert()->replace_one( { x => 3 } );
    # Remove a single document matching the selector
    bulk->find( { a => 4 } )->delete_one();
    # Remove all documents matching the selector
    bulk->find( { a => 5 } )->delete_many();
    # Update any arrays with the matching filter
    bulk->find( {} )->arrayFilters([ { 'i.b' => 1 } ])->update_many( { '$set' => { 'y.$[i].b' => 2 } } );
    # Remove all documents matching the selector, with respect to a collation
    bulk->find( { a => { '$gte' => 'F' } )->collation($collation)->delete_many();
    # Remove all documents
    bulk->find( {} )->delete_many();
```

## DESCRIPTION

This class provides means to specify write operations constrained by a query document.

To instantiate a `"MongoDB::BulkWriteView"`, use the find method from MongoDB::BulkWrite.

Except for "arrayFilters", "collation" and "upsert", all methods have an empty return on success; an exception will be thrown on error.

## METHODS

### arrayFilters

```
    $bulk->arrayFilters( $array_filters )->update_many( $modification );
```

Returns a new `"MongoDB::BulkWriteView"` object, where the specified arrayFilter will be used to determine which array elements to modify for an update operation on an array field.

### collation

```
    $bulk->collation( $collation )->delete_one;
```

Returns a new `"MongoDB::BulkWriteView"` object, where the specified collation will be used to determine which documents match the query document.  A collation can be specified for any deletion, replacement, or update.

### delete\_many

```
    $bulk->delete_many;
```

Removes all documents matching the query document.

### delete\_one

```
    $bulk->delete_one;
```

Removes a single document matching the query document.

### replace\_one

```
    $bulk->replace_one( $doc );
```

Replaces the document matching the query document.  The document to replace must not have any keys that begin with a dollar sign, `"$"`.

### update\_many

```
    $bulk->update_many( $modification );
```

Updates all documents  matching the query document.  The modification document must have all its keys begin with a dollar sign, `"$"`.

### update\_one

```
    $bulk->update_one( $modification );
```

Updates a single document matching the query document.  The modification document must have all its keys begin with a dollar sign, `"$"`.

### upsert

```
    $bulk->upsert->replace_one( $doc );
```

Returns a new `"MongoDB::BulkWriteView"` object that will treat every update, update\_one or replace\_one operation as an upsert operation.

## AUTHORS

- •

  David Golden \<david@mongodb.com\>

- •

  Rassi \<rassi@mongodb.com\>

- •

  Mike Friedman \<friedo@friedo.com\>

- •

  Kristina Chodorow \<k.chodorow@gmail.com\>

- •

  Florian Ragwitz \<rafl@debian.org\>

## COPYRIGHT AND LICENSE

This software is Copyright (c) 2020 by MongoDB, Inc.

This is free software, licensed under:

```
  The Apache License, Version 2.0, January 2004
```
