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

ドキュメントの挿入

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

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

  • insert_one : 単一のドキュメントを挿入する

  • insert_many : 1 つ以上のドキュメントを挿入する

このガイドの例では、Atlasサンプルデータセットsample_restaurantsデータベースの restaurantsコレクションを使用します。Rubyアプリケーションからこのコレクションにアクセスするには、Atlas クラスターに接続する Mongo::Clientオブジェクトを作成し、次の値を database 変数と collection 変数に割り当てます。

database = client.use('sample_restaurants')
collection = database[:restaurants]

MongoDB Atlasクラスターを無料で作成して、サンプルデータセットをロードする方法については、MongoDBを使い始めるガイドを参照してください。

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

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

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

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

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

注意

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

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

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

MongoDBコレクションに単一のドキュメントを追加するには、insert_one メソッドを呼び出し、挿入するドキュメントを渡します。

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

document = { name: 'Neighborhood Bar & Grill', borough: 'Queens' }
collection.insert_one(document)

MongoDBコレクションに複数のドキュメントを追加するには 、insert_many メソッドを呼び出して、挿入するドキュメントのリストを渡します。

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

documents = [
{ name: 'Metropolitan Cafe', borough: 'Queens' },
{ name: 'Yankee Bistro', borough: 'Bronx' }
]
collection.insert_many(documents)

挿入操作を構成するオプションを設定するには、Hashオブジェクトをinsert_one メソッドのパラメーターとして渡します。オプションを指定しない場合、ドライバーはデフォルト設定で挿入操作を実行します。

次の表では、 insert_one操作を構成するために設定できるオプションについて説明します。

オプション
説明

bypass_document_validation

ドキュメントレベルの検証を無視するかどうかをドライバーに指示します。詳細については、 MongoDB Serverマニュアルの「 スキーマバリデーション 」を参照してください。デフォルトは
falseです。

comment

操作に添付するコメントを設定します。詳細については、MongoDB Server マニュアルの「insert コマンド フィールド」のガイドを参照してください。

session

操作に使用するセッションを設定します。セッションの詳細については、 MongoDB Serverマニュアルの 「クライアント セッションと因果整合性の保証」 を参照してください。

write_concern

操作の書込み保証 (write concern)を設定します。詳細については、MongoDB Serverマニュアルの「書込み保証 (write concern)」のガイドを参照してください。

メソッド呼び出しのパラメーターとして Hash を渡すことで、insert_many メソッドで上記の設定を設定できます。ordered オプションを使用して、ドライバーがMongoDBにドキュメントを挿入する順序を指定することもできます。

次のコードでは、insert_many メソッドを使用して、3 つの新しいドキュメントをコレクションに挿入します。bypass_document_validation オプションが有効になっているため、この挿入操作はドキュメントレベルの検証をバイパスします。

documents = [
{ name: 'Cloudy Day', borough: 'Brooklyn' },
{ name: 'Squall or Shine', borough: 'Staten Island' }
{ name: 'Rose Field', borough: 'Queens' }
]
options = { bypass_document_validation: true }
collection.insert_many(documents, options)

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