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

MongoDB\Collection::insertMany()

MongoDB\Collection::insertMany()

複数のドキュメントを挿入します。

function insertMany(
array $documents,
array $options = []
): MongoDB\InsertManyResult
$documents : 配列
コレクションに挿入するドキュメント。
$options : 配列

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

名前
タイプ
説明

bypassDocumentValidation

ブール値

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

コーデック

MongoDB\Codec\DocumentCodec

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

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

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

comment

混合

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

このオプションは MongoDB 4.4 以降で使用可能であり、古いサーバー バージョンで指定すると実行時に例外が発生します。

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

ordered

ブール値

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

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

デフォルトは true です。

セッション

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

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

writeConcern

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

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

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

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

次の操作では、 testデータベース内のusersコレクションに 2 つのドキュメントが挿入されます。

<?php
$collection = (new MongoDB\Client)->test->users;
$insertManyResult = $collection->insertMany([
[
'username' => 'admin',
'email' => 'admin@example.com',
'name' => 'Admin User',
],
[
'username' => 'test',
'email' => 'test@example.com',
'name' => 'Test User',
],
]);
printf("Inserted %d document(s)\n", $insertManyResult->getInsertedCount());
var_dump($insertManyResult->getInsertedIds());

出力は次のようになります。

Inserted 2 document(s)
array(2) {
[0]=>
object(MongoDB\BSON\ObjectId)#11 (1) {
["oid"]=>
string(24) "579a25921f417dd1e5518141"
}
[1]=>
object(MongoDB\BSON\ObjectId)#12 (1) {
["oid"]=>
string(24) "579a25921f417dd1e5518142"
}
}