MongoDB\Driver\BulkWrite::update
(mongodb >=1.0.0)
MongoDB\Driver\BulkWrite::update — Add 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. onlyfield:value
expressions), or an » aggregation pipeline.updateOptions
- {|
|+ updateOptions
!width="25%"| Option
!width="25%"| Type
!width="25%"| Description
!width="25%"| 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.
| |- | collation | array|object |
» Collation は、文字列比較の際の言語固有のルールを指定するものです。たとえば、大文字小文字やアクセント記号の扱いを指定できます。 collation を指定するときには
"locale"
フィールドが必須となります。それ以外の collation フィールドはすべて任意指定です。 各フィールドについての説明は » Collation のドキュメント を参照ください。collation が未指定で collection のデフォルトの collation が設定されている場合は、コレクションが持っている collation を用いて操作を実行します。 コレクションや操作にも collation が指定されていない場合は、MongoDB は単純にバイナリ比較を行います。 これは、今までのバージョンでの文字列比較と同じ方法です。
このオプションは MongoDB 3.4 以降で使用可能です。それより前のバージョンのサーバー上で指定すると、実行時に例外が発生します。
| |- | 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 documentstrue
. This option cannot betrue
ifnewObj
is a replacement document. |false
|- | upsert | bool | Iffilter
does not match an existing document, insert a single document. The document will be created fromnewObj
if it is a replacement document (i.e. no update operators); otherwise, the operators innewObj
will be applied tofilter
to create the new document. |false
|}
返り値
値を返しません。
変更履歴
バージョン | 説明 |
---|---|
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.
|
例
例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