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

ドキュメントの挿入

項目一覧

  • Overview
  • サンプル データ
  • _id フィールド
  • 1つのドキュメントの挿入
  • 複数のドキュメントの挿入
  • 挿入動作の変更
  • 詳細情報
  • API ドキュメント

このガイドでは、 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 Atlasクラスターを無料で作成して、サンプルデータセットをロードする方法については、 「Atlas を使い始める」ガイドを参照してください。

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
If set to true, allows the write operation to opt out of document-level validation.
Defaults to false.
Type: bool
writeConcern
Sets the write concern for the operation.
Defaults to the write concern of the namespace.
Type: MongoDB\Driver\WriteConcern
ordered
If set to true, the operation stops inserting documents when one insert fails. If false, the operation continues to insert the remaining documents when one insert fails. You cannot pass this option to the insertOne() method.
Defaults to true.
Type: bool
comment
A comment to attach to the operation. For more information, see the insert command fields guide in the MongoDB Server manual.
Type: any valid BSON type

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

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

MongoDB PHPライブラリを使用してドキュメントを挿入する実行可能なコード例については、「 MongoDBへのデータの書き込み 」を参照してください。

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

戻る

Update Documents