Overview
このページには、Python アプリケーションをさまざまな設定で MongoDB に接続する方法を示すコード例が含まれています。
Tip
このページの接続オプションの詳細については、各セクションに記載されているリンクを参照してください。
このページの接続例を使用するには、コード例をサンプルアプリケーションまたは独自のアプリケーションにコピーします。 などのコード例内のすべてのプレースホルダーを、<hostname> MongoDBデプロイに関連する値に置き換えてください。
サンプル アプリケーション
次のサンプルアプリケーションを使用して、このページのコード例をテストできます。 サンプル アプリケーションを使用するには、次の手順を実行します。
PyMongo がインストールされていることを確認します。
次のコードをコピーし、新しい
.pyファイルに貼り付けます。このページからコード例をコピーし、 ファイル内の指定された行に貼り付けます。
対応するコードを表示するには、Synchronous タブまたは Asynchronousタブを選択します。
1 import pymongo 2 from pymongo import MongoClient 3 4 try: 5 uri = "<connection string URI>" 6 client = MongoClient(uri) 7 8 database = client["<database name>"] 9 collection = database["<collection name>"] 10 11 # start example code here 12 13 # end example code here 14 15 client.close() 16 17 except Exception as e: 18 raise Exception( 19 "The following error occurred: ", e)
1 import asyncio 2 import pymongo 3 from pymongo import AsyncMongoClient 4 5 async def main(): 6 try: 7 uri = "<connection string URI>" 8 client = AsyncMongoClient(uri) 9 10 database = client["<database name>"] 11 collection = database["<collection name>"] 12 13 # start example code here 14 15 # end example code here 16 17 await client.close() 18 19 except Exception as e: 20 raise Exception( 21 "The following error occurred: ", e) 22 23 asyncio.run(main())
1 つを挿入
result = collection.insert_one({ "<field name>" : "<value>" }) print(result.acknowledged)
result = await collection.insert_one({ "<field name>" : "<value>" }) print(result.acknowledged)
insert_one()メソッドについて詳しくは、ドキュメントの挿入ガイドをご覧ください。
複数挿入
document_list = [ { "<field name>" : "<value>" }, { "<field name>" : "<value>" } ] result = collection.insert_many(document_list) print(result.acknowledged)
document_list = [ { "<field name>" : "<value>" }, { "<field name>" : "<value>" } ] result = await collection.insert_many(document_list) print(result.acknowledged)
insert_many()メソッドについて詳しくは、ドキュメントの挿入ガイドをご覧ください。
更新 1
query_filter = { "<field to match>" : "<value to match>" } update_operation = { "$set" : { "<field name>" : "<value>" } } result = collection.update_one(query_filter, update_operation) print(result.modified_count)
query_filter = { "<field to match>" : "<value to match>" } update_operation = { "$set" : { "<field name>" : "<value>" } } result = await collection.update_one(query_filter, update_operation) print(result.modified_count)
update_one()メソッドについて詳しくは、ドキュメントの更新ガイドを参照してください。
複数更新
query_filter = { "<field to match>" : "<value to match>" } update_operation = { "$set" : { "<field name>" : "<value>" } } result = collection.update_many(query_filter, update_operation) print(result.modified_count)
query_filter = { "<field to match>" : "<value to match>" } update_operation = { "$set" : { "<field name>" : "<value>" } } result = await collection.update_many(query_filter, update_operation) print(result.modified_count)
update_many()メソッドについて詳しくは、ドキュメントの更新ガイドを参照してください。
replaceOne
query_filter = { "<field to match>" : "<value to match>" } replace_document = { "<new document field name>" : "<new document value>" } result = collection.replace_one(query_filter, replace_document) print(result.modified_count)
query_filter = { "<field to match>" : "<value to match>" } replace_document = { "<new document field name>" : "<new document value>" } result = await collection.replace_one(query_filter, replace_document) print(result.modified_count)
replace_one()メソッドの詳細については、ドキュメントの置換のガイドを参照してください。
deleteOne
query_filter = { "<field to match>" : "<value to match>" } result = collection.delete_one(query_filter) print(result.deleted_count)
query_filter = { "<field to match>" : "<value to match>" } result = await collection.delete_one(query_filter) print(result.deleted_count)
delete_one()メソッドの詳細については、ドキュメントの削除のガイドを参照してください。
複数削除
query_filter = { "<field to match>" : "<value to match>" } result = collection.delete_many(query_filter) print(result.deleted_count)
query_filter = { "<field to match>" : "<value to match>" } result = await collection.delete_many(query_filter) print(result.deleted_count)
delete_many()メソッドの詳細については、ドキュメントの削除のガイドを参照してください。
一括書き込み (write)
operations = [ pymongo.InsertOne( { "<field name>" : "<value>" } ), pymongo.UpdateMany( { "<field to match>" : "<value to match>" }, { "$set" : { "<field name>" : "<value>" }}, ), pymongo.DeleteOne( { "<field to match>" : "<value to match>" } ), ] result = collection.bulk_write(operations) print(result)
operations = [ pymongo.InsertOne( { "<field name>" : "<value>" } ), pymongo.UpdateMany( { "<field to match>" : "<value to match>" }, { "$set" : { "<field name>" : "<value>" }}, ), pymongo.DeleteOne( { "<field to match>" : "<value to match>" } ), ] result = await collection.bulk_write(operations) print(result)
bulk_write()メソッドの詳細については、一括書込みのガイドを参照してください。
1件を特定
results = collection.find_one({ "<field name>" : "<value>" }) print(results)
results = await collection.find_one({ "<field name>" : "<value>" }) print(results)
find_one()メソッドの詳細については、データ取得 ガイドの「 1 つのドキュメントの検索 」を参照してください。
複数検索
results = collection.find({ "<field name>" : "<value>" }) for document in results: print(document)
results = collection.find({ "<field name>" : "<value>" }) async for document in results: print(document)
find()メソッドの詳細については、データ取得 ガイドの「 複数のドキュメントの検索 」を参照してください。
コレクション内のドキュメントをカウント
count = collection.count_documents({}) print(count)
count = await collection.count_documents({}) print(count)
count_documents()メソッドの詳細については、「正確なカウントの取得」ガイドを参照してください。
クエリから返されたドキュメントをカウントする
count = collection.count_documents({ "<field name>": "<value>" }) print(count)
count = await collection.count_documents({ "<field name>": "<value>" }) print(count)
count_documents()メソッドの詳細については、「正確なカウントの取得」ガイドを参照してください。
推定ドキュメント数
count = collection.estimated_document_count() print(count)
count = await collection.estimated_document_count() print(count)
estimated_document_count()メソッドの詳細については、「推定カウントの取得」ガイドを参照してください。
Retrieve Distinct Values
results = collection.distinct("<field name>") for document in results: print(document)
results = await collection.distinct("<field name>") for document in results: print(document)
distinct()メソッドの詳細については、「個別のフィールド値の取得 」ガイドを参照してください。