MongoDB\Driver\BulkWrite::update

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::updateAdd an update operation to the bulk

説明

public MongoDB\Driver\BulkWrite::update ( array|object $filter , array|object $newObj [, array $updateOptions ] ) : void

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

パラメータ

filter (array|object)

» クエリ述語。 空の述語を指定すると、コレクション内のすべてのドキュメントにマッチします。

注意: When evaluating query criteria, MongoDB compares types and values according to its own » comparison rules for BSON types, which differs from PHP's comparison and type juggling rules. When matching a special BSON type the query criteria should use the respective BSON class (e.g. use MongoDB\BSON\ObjectId to match an » ObjectId).

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|object

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.

collation array|object

» Collation は、文字列比較の際の言語固有のルールを指定するものです。たとえば、大文字小文字やアクセント記号の扱いを指定できます。 collation を指定するときには "locale" フィールドが必須となります。それ以外の collation フィールドはすべて任意指定です。 各フィールドについての説明は » Collation のドキュメント を参照ください。

collation が未指定で collection のデフォルトの collation が設定されている場合は、コレクションが持っている collation を用いて操作を実行します。 コレクションや操作にも collation が指定されていない場合は、MongoDB は単純にバイナリ比較を行います。 これは、今までのバージョンでの文字列比較と同じ方法です。

このオプションは MongoDB 3.4 以降で使用可能です。それより前のバージョンのサーバー上で指定すると、実行時に例外が発生します。

multi boolean 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 boolean 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

返り値

値を返しません。

エラー / 例外

変更履歴

バージョン 説明
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.
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.
1.4.0 Added the "arrayFilters" option.
1.2.0 Added the "collation" option.

例1 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);

?>

参考