Docs Menu
Docs Home
/ / /
PHP ライブラリ マニュアル
/ /

MongoDB\Collection::bulkWrite()

MongoDB\Collection::bulkWrite()

複数の書込み操作を実行します。

function bulkWrite(
array $operations,
array $options = []
): MongoDB\BulkWriteResult
$operations : 配列

実行される書込み (write) 操作を含む配列。 MongoDB\Collection::bulkWrite()は、次の配列構造で MongoDB\Collection::deleteMany()MongoDB\Collection::deleteOne()MongoDB\Collection::insertOne()MongoDB\Collection::replaceOne()MongoDB\Collection::updateMany() 、およびMongoDB\Collection::updateOne()操作をサポートしています。

[
[ 'deleteMany' => [ $filter ] ],
[ 'deleteOne' => [ $filter ] ],
[ 'insertOne' => [ $document ] ],
[ 'replaceOne' => [ $filter, $replacement, $options ] ],
[ 'updateMany' => [ $filter, $update, $options ] ],
[ 'updateOne' => [ $filter, $update, $options ] ],
]

引数は、それぞれの操作メソッドに対応します。 ただし、 writeConcernオプションは、個々の操作ではなく、 MongoDB\Collection::bulkWrite()の最上位オプションとして指定されます。

$options : 配列

必要なオプションを指定する配列。

名前
タイプ
説明

builderEncoder

MongoDB\Codec\Encoder

クエリ ビルダと集計ビルダに使用するエンコード。設定されていない場合、このオプションはデフォルトで MongoDB\Builder\BuilderEncoderクラスの新しいインスタンスになります。

バージョン1.21の新機能

bypassDocumentValidation

ブール値

trueの場合、書込み操作によってドキュメント レベルの検証を回避できます。 デフォルトはfalseです。

コーデック

MongoDB\Codec\DocumentCodec

ドキュメントのエンコードまたはデコードに使用する タイプ コーデック でデータをエンコードする。このオプションはtypeMap オプションと相互に排他的です。

デフォルトはコレクションのコーデック。 デフォルトのcodecオプションの継承は、 typeMapオプションの継承よりも優先されます。

一括書き込みでは、 insertOne操作とreplaceOne操作に コーデックを使用します。

バージョン 1.17 の新機能

comment

混合

データベースプロファイラcurrentOp出力、およびログから操作を追跡するのに役立つ任意のコメントを指定できるようにします。

このオプションを使用するには、 MongoDB 6.0 以降に接続する必要があります。以前のバージョンに接続している場合、サーバーは実行時に例外を返します。

バージョン 1.13 の新機能

let

array|object

パラメーター名と値のマップ。 値は、ドキュメント フィールドを参照しない定数または閉じた式である必要があります。 その後、パラメーターには 集計式コンテキスト で変数としてアクセスできます(例: $$var )。

この機能はMongoDBサーバーバージョン 6.0 以前ではサポートされていません。使用される場合、サーバーは実行時に例外を返します。

バージョン 1.13 の新機能

ordered

ブール値

true の場合: 1 つの書き込みが失敗すると、残りの書き込みを実行せず操作は停止し、例外がスローされます。

false の場合: 1 つの書き込みが失敗すると、操作は残りの書き込みがある場合は続行され、例外がスローされます。

デフォルトは true です。

セッション

操作に関連付けるクライアント セッション。

バージョン 1.3 で追加

writeConcern

操作に使用する書込み保証 ( write concern )。 コレクションの書込み保証 (write concern) のデフォルトです。

トランザクションの一部である個々の操作に対して書込み保証 (write concern) を指定することはできません。 代わりに 、トランザクションを開始する ときにwriteConcern オプションを設定します。

MongoDB\BulkWriteResultMongoDB\Driver\WriteResult をカプセル化する オブジェクト オブジェクト。

MongoDB\Exception\UnsupportedExceptionオプションが使用され、選択したサーバーでサポートされていない場合(例: collationreadConcernwriteConcern )。

MongoDB\Exception\InvalidArgumentException は、パラメータまたはオプションの解析に関連するエラーの場合は です。

書込み (write)操作に関連するエラーについては、 MongoDB $Driver\Exception\BulkWriteException を参照してください。getWriteResult() によって返される値を調べて、エラーの内容を判断できます。

MongoDB\Driver\Exception\RuntimeException 拡張レベルのその他のエラー(例:)。

MongoDB\Driver\Exception\BulkWriteException がスローされた場合は、 getWriteResult() を呼び出し、返されたMongoDB\Driver\WriteResultオブジェクトを調べて、エラーの内容を判断できます。

例えば、書込み (write) 操作はプライマリ サーバーに正常に適用されたが、書込み保証 (write concern) を満たすには失敗した場合(例: レプリケーションに時間がかかりすぎました)。 あるいは、書込み (write) 操作が完全に失敗した可能性があります(例: 一意なキー違反)。

一括書き込みの場合、結果は複数の書き込み操作の成功やエラーを示すことがあります。ordered オプションが true の場合、最初のエラーが発生して例外がスローされる前に一部の操作が成功している可能性があります。ordered オプションが false の場合、複数のエラーが発生した可能性があります。

戻る

Aggregate()

項目一覧