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

MongoDB\Collection::insertMany()

項目一覧

  • 定義
  • パラメーター
  • Return Values
  • エラーと例外
  • 動作
  • その他の参照
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 は、パラメータまたはオプションの解析に関連するエラーの場合は です。

MongoDB\Driver\Exception\BulkWriteException 書込み (write) 操作に関連するエラーの場合ユーザーは 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"
}
}

戻る

getWriteConcern()