MongoDB\ClientBulkWrite::updateOne()
バージョン2.1の新機能。
定義
MongoDB\ClientBulkWrite::updateOne()
Specify an update operation in the bulk write command for the first matching document. This method returns the
MongoDB\ClientBulkWrite
instance on which it's called.function updateOne( array|object $filter, array|object $update, array $options = [] ): self
パラメーター
$filter
: array|object- 更新するドキュメントを指定するフィルター条件。
$update
: array|object- 更新するフィールドと値の組み合わせと、関連する更新演算子。
$update
は MongoDB の 更新演算子 を使用します。このパラメーターとして集計パイプラインを渡すことができます。 $options
: 配列必要なオプションを指定する配列。
名前タイプ説明arrayFilters
配列
配列フィールドの更新操作でどの配列要素を変更するかを決定するフィルタードキュメントの配列。
collation
array|object
照合順序を指定すると、大文字や小文字、アクセント記号など、string を比較するための言語独自のルールを指定できます。 照合を指定する場合、
locale
フィールドは必須です。その他の照合フィールドはすべてオプションです。 フィールドの説明については、 「照合ドキュメント」 を参照してください。照合が指定されていないが、コレクションにデフォルトの照合がある場合、操作はコレクションに指定された照合を使用します。 コレクションにも操作にも照合が指定されていない場合、MongoDB では以前のバージョンで使用されていた単純なバイナリ比較によって string が比較されます。
hint
string|array|object
使用するインデックス。 インデックス名を string またはインデックス キー パターンをドキュメントとして指定します。 指定すると、クエリ システムはヒント指定したインデックスを使用するプランのみを考慮します。
sort
array|object
一致したドキュメントの順序の並び替え指定。このオプションを に設定すると、サーバーが更新操作を実行する前に、一致したドキュメントに順序を適用します。
upsert
ブール値
true
に設定すると、クエリ条件に一致するドキュメントがない場合に新しいドキュメントが作成されます。 デフォルト値はfalse
で、一致するものが見つからない場合は新しいドキュメントを挿入しません。
エラーと例外
MongoDB\Exception\UnsupportedException
オプションが使用され、選択したサーバーでサポートされていない場合(例: collation
、 readConcern
、 writeConcern
)。
MongoDB\Exception\InvalidArgumentException
は、パラメータまたはオプションの解析に関連するエラーの場合は です。
MongoDB$Driver\Exception\BulkWriteCommandException 書込み (write)操作に関連するエラーの場合getWriteErrors() によって返される値を調べて、エラーの内容を判断できます。
MongoDB\Driver\Exception\RuntimeException 拡張レベルのその他のエラー(例:)。
動作
クエリ条件を評価する際、MongoDB は BSON types の独自の比較ルール に従って型と値を比較します。これは PHP の 比較と は異なります と 型の調整 ルール。特殊な BSON 型と一致する場合、クエリ条件はそれぞれの BSON クラス を使用する必要があります 拡張機能(例:MongoDB\BSON \ObjectId ObjectIdを使用 )
MongoDB\Driver\Exception\BulkWriteCommandException がスローされた場合は、 getWriteErrors() を呼び出し、返された配列の情報を調べて、エラーの内容を判断できます。
例、書込み (write)操作はプライマリサーバーに正常に適用されたが、書込み保証 (write concern)を満たすには失敗した場合があります。あるいは、一意なキー制約に違反する例、書込み (write)操作が完全に失敗した可能性もあります。