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

ドキュメントの挿入

このガイドでは、 MongoDB PHPライブラリを使用して、挿入操作を実行し、 MongoDBコレクションにドキュメントを追加する方法を学習できます。

挿入操作は 、1 つ以上の ドキュメント をMongoDBコレクションに挿入します。 次の方法を使用して、挿入操作を実行できます。

  • MongoDB\Collection::insertOne() 単一のドキュメントを挿入するメソッド

  • MongoDB\Collection::insertMany() メソッドを使用して 1 つ以上のドキュメントを挿入します

このガイドの例では、 Atlasサンプルデータセットsample_restaurantsデータベースのrestaurantsコレクションを使用します。 PHPアプリケーションからこのコレクションにアクセスするには、Atlas クラスターに接続するMongoDB\Clientをインスタンス化し、次の値を$collection変数に割り当てます。

$collection = $client->sample_restaurants->restaurants;

MongoDB配置を作成し、サンプルデータセットをロードする方法については、MongoDBの使用開始ガイドを参照してください。

MongoDB コレクションでは、各ドキュメントに一意のフィールド値を持つ_idフィールドが含まれている必要があります。

MongoDB では、このフィールドは次の 2 つの方法で管理できます。

  • 各ドキュメントの_idフィールドを自分で設定し、各値が一意であることを確認します。

  • ドライバーがドキュメント_idフィールドごとに一意のObjectId値を自動的に生成できるようにします。

一意性を保証できない限り、ドライバーに_id値を自動的に生成させることをお勧めします。

注意

重複した_id値はユニークインデックス制約に違反するため、ドライバーはMongoDB\Driver\Exception\BulkWriteExceptionエラーを返します。

_idフィールドの詳細については、 マニュアルの 「 一意なインデックス 」MongoDB Server のガイドを参照してください。

ドキュメント構造とルールの詳細については、MongoDB Server マニュアルのドキュメントガイド を参照してください。

MongoDB コレクションに単一のドキュメントを追加するには、 MongoDB\Collection::insertOne()メソッドを呼び出して、追加するドキュメントを渡します。

次の例では、 restaurantsコレクションにドキュメントを挿入します。

$result = $collection->insertOne(['name' => 'Mongo\'s Burgers']);

MongoDBコレクションに複数のドキュメントを追加するには 、 MongoDB\Collection::insertMany()メソッドを呼び出し、追加するドキュメントのリストを含む配列を渡します。

次の例では、 restaurantsコレクションに 2 つのドキュメントを挿入しています。

$restaurants = [
['name' => 'Mongo\'s Burgers'],
['name' => 'Mongo\'s Pizza'],
];
$result = $collection->insertMany($restaurants);

オプション値を指定する配列をパラメーターとして渡すことで、 MongoDB\Collection::insertOne()メソッドとMongoDB\Collection::insertMany()メソッドの動作を変更できます。 次の表では、 配列に設定できるオプションの一部を説明しています。

フィールド
説明

bypassDocumentValidation

trueに設定すると、書込み操作でドキュメントレベルの検証をオプトアウトできます。デフォルトは
false
です。タイプ:bool

writeConcern

操作の書込み保証 (write
concern)を設定します。デフォルトは、名前空間の書込み保証 (write
concern)です。タイプ:MongoDB\Driver\WriteConcern

ordered

trueに設定されている場合、挿入が 1 回失敗すると、この操作ドキュメントの挿入が停止されます。false の場合、1 つの挿入が失敗しても、操作は残りのドキュメントの挿入を続行します。このオプションは メソッドに渡すことはできません。デフォルトはinsertOne()
true
です。タイプ:bool

comment

操作に添付するコメント。詳細については、 MongoDB Serverマニュアルの 「挿入コマンド
フィールドのガイド」を参照してください。タイプ: 任意の有効なBSONタイプ

次のコードでは、 insertMany()メソッドを使用して、3 つの新しいドキュメントをコレクションに挿入します。 bypassDocumentValidationフィールドはオプション配列でtrueに設定されているため、この挿入操作はドキュメントレベルの検証をバイパスします。

$docs = [
['name' => 'Mongo\'s Burgers'],
['name' => 'Mongo\'s Pizza'],
['name' => 'Mongo\'s Tacos'],
];
$result = $collection->insertMany($docs, ['bypassDocumentValidation' => true]);

このガイドで説明したメソッドや型の詳細については、次の API ドキュメントを参照してください。