MongoDB\Driver\BulkWrite::update
(mongodb >=1.0.0)
MongoDB\Driver\BulkWrite::update — Add an update operation to the bulk
説明
$filter
, array|object $newObj
[, array $updateOptions
] ) : voidAdds 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 documentsTRUE. This option cannot beTRUEifnewObjis a replacement document.FALSEupsert boolean If filterdoes not match an existing document, insert a single document. The document will be created fromnewObjif it is a replacement document (i.e. no update operators); otherwise, the operators innewObjwill be applied tofilterto create the new document.FALSE
返り値
値を返しません。
エラー / 例外
- 引数のパースに失敗した場合に MongoDB\Driver\Exception\InvalidArgumentException をスローします。
変更履歴
| バージョン | 説明 |
|---|---|
| 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);
?>
参考
- MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations
- MongoDB\Driver\WriteResult