AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

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 4.4 以降で使用可能であり、古いサーバー バージョンで指定すると実行時に例外が発生します。

1.13バージョン の新機能。:

let

array|object

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

これは 5.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 の場合、複数のエラーが発生した可能性があります。