Docs Menu

Docs Homeアプリケーションの開発Python ドライバーPyMongo

ドキュメントの挿入

項目一覧

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

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

挿入操作は、1 つ以上のドキュメントを MongoDB コレクションに挿入します。 挿入操作は、 insert_one()またはinsert_many()メソッドを使用して実行できます。

このガイドの例では、 Atlas サンプル データセットsample_restaurants.restaurantsコレクションを使用します。 MongoDB Atlas クラスターを無料で作成して、サンプル データセットをロードする方法については、 「 PyMongo を使い始める 」チュートリアルを参照してください。

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

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

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

  • ドライバーを使用して、各ドキュメント_idに対して一意のObjectId値を自動的に生成できます。 ドキュメントの_id値を手動で設定しない場合、ドライバーは フィールドにObjectIdを入力します。

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

注意

重複した_id値は一意のインデックス制約に違反するため、ドライバーはinsert_one() WriteErrorを、またはinsert_many() BulkWriteErrorを返します。

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

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

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.

InsertMany()メソッドは、前述の任意パラメータと任意の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 ドキュメントを参照してください。

← MongoDB へのデータの書込み (write)