ドキュメントの挿入
Overview
このガイドでは、PyMongo を使用して挿入操作を実行し、MongoDB コレクションにドキュメントを追加する方法を学習できます。
挿入操作は、1 つ以上のドキュメントを MongoDB コレクションに挿入します。 挿入操作は、 insert_one()
またはinsert_many()
メソッドを使用して実行できます。
サンプル データ
このガイドの例では、 Atlas サンプル データセットのsample_restaurants.restaurants
コレクションを使用します。 To learn how to create a free MongoDB Atlas cluster and load the sample datasets, see the Get Started with PyMongo tutorial.
_id
フィールド
MongoDB コレクションでは、各ドキュメントに一意のフィールド値を持つ_id
フィールドが含まれている必要があります。
MongoDB では、このフィールドは次の 2 つの方法で管理できます。
このフィールドは各ドキュメントに自分で設定することができ、各
_id
フィールド値が一意であることを確認します。ドライバーを使用して、各ドキュメント
_id
に対して一意のObjectId
値を自動的に生成できます。 ドキュメントの_id
値を手動で設定しない場合、ドライバーは フィールドにObjectId
を入力します。
一意性を保証できない限り、ドライバーに_id
値を自動的に生成させることをお勧めします。
注意
重複した_id
値は一意のインデックス制約に違反するため、ドライバーはinsert_one()
WriteError
を、またはinsert_many()
BulkWriteError
を返します。
_id
フィールドの詳細については、 マニュアルの 「 一意なインデックス 」MongoDB Server のガイドを参照してください。
ドキュメント構造とルールの詳細については、MongoDB Server マニュアルのドキュメントガイド を参照してください。
1つのドキュメントの挿入
MongoDB コレクションに単一のドキュメントを追加するには、 insert_one()
メソッドを呼び出して、追加するドキュメントを渡します。
次の例では、 restaurants
コレクションにドキュメントを挿入します。
sample_restaurants.restaurants.insert_one({"name" : "Mongo's Burgers"})
複数のドキュメントの挿入
MongoDB コレクションに複数のドキュメントを追加するには、 insert_many()
メソッドを呼び出して、追加するドキュメントのリストを渡します。
次の例では、ドキュメントのリストをrestaurants
コレクションに挿入します。
document_list = [ { "name" : "Mongo's Burgers" }, { "name" : "Mongo's Pizza" } ] sample_restaurants.restaurants.insert_many(document_list)
挿入動作の変更
insert_one()
メソッドはオプションで、挿入操作を構成するために使用できるオプションを表す追加のパラメーターを受け入れます。 追加のパラメーターを指定しない場合、ドライバーは挿入をカスタマイズしません。
プロパティ | 説明 |
---|---|
bypass_document_validation | If set to True , allows the write to opt out of
document-level validation.Defaults to False . |
session | An instance of ClientSession . |
comment | A comment to attach to the operation. For more information, see the insert command
fields guide in the
MongoDB Server manual for more information. |
insert_many()
メソッドは、前述の任意パラメータと任意のordered
プロパティを受け入れます。
プロパティ | 説明 |
---|---|
ordered | If set to True , the driver sends documents to the
server in the order provided. If an error occurs, the driver
and server cancel all remaining insert operations.Defaults to True . |
例
次のコードでは、 insert_many()
メソッドを使用して 3 つの新しいドキュメントをコレクションに挿入します。 2 番目のメソッド引数はbypass_document_validation = True
であるため、この挿入操作はドキュメント レベルの検証をバイパスします。
document_list = [ { "name" : "Mongo's Burgers" }, { "name" : "Mongo's Pizza" }, { "name" : "Mongo's Tacos" } ] sample_restaurants.restaurants.insert_many(document_list, bypass_document_validation = True)
詳細情報
PyMongo を使用してドキュメントを挿入する実行可能なコード例については、「 MongoDB へのデータの書込み 」を参照してください。
API ドキュメント
このガイドで説明したメソッドや型の詳細については、次の API ドキュメントを参照してください。