Overview
このページには、Python アプリケーションをさまざまな設定で MongoDB に接続する方法を示すコード例が含まれています。
Tip
このページの接続オプションの詳細については、各セクションに記載されているリンクを参照してください。
このページの接続例を使用するには、コード例をサンプルアプリケーションまたは独自のアプリケーションにコピーします。 <hostname>などのコード例にあるすべてのプレースホルダーを、MongoDB 配置に関連する値に置き換えてください。
サンプル アプリケーション
次のサンプルアプリケーションを使用して、このページのコード例をテストできます。 サンプル アプリケーションを使用するには、次の手順を実行します。
PyMongo がインストールされていることを確認します。
次のコードをコピーし、新しい
.pyファイルに貼り付けます。このページからコード例をコピーし、 ファイル内の指定された行に貼り付けます。
対応するコードを表示するには、Synchronous タブまたは Asynchronousタブを選択します。
import pymongofrom pymongo import MongoClient
try: uri = "<connection string URI>" client = MongoClient(uri)
database = client["<database name>"] collection = database["<collection name>"]
# start example code here
# end example code here
client.close()
except Exception as e: raise Exception( "The following error occurred: ", e)import asyncioimport pymongofrom pymongo import AsyncMongoClient
async def main(): try: uri = "<connection string URI>" client = AsyncMongoClient(uri)
database = client["<database name>"] collection = database["<collection name>"]
# start example code here
# end example code here
await client.close()
except Exception as e: raise Exception( "The following error occurred: ", e)
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()メソッドの詳細については、「個別のフィールド値の取得 」ガイドを参照してください。