MongoDB に接続する
Overview
このページには、Python アプリケーションをさまざまな設定で MongoDB に接続する方法を示すコード例が含まれています。
Tip
このページの接続オプションの詳細については、各セクションに記載されているリンクを参照してください。
このページの接続例を使用するには、コード例をサンプル アプリケーションまたは独自のアプリケーションにコピーします。 <hostname>
など、コード例にあるすべてのプレースホルダーを、MongoDB 配置に関連する値に置き換えてください。
サンプル アプリケーション
次のサンプルアプリケーションを使用して、このページのコード例をテストできます。 サンプル アプリケーションを使用するには、次の手順を実行します。
PyMongo がインストールされていることを確認します。
次のコードをコピーし、新しい
.py
ファイルに貼り付けます。このページからコード例をコピーし、 ファイル内の指定された行に貼り付けます。
対応するコードを表示するには、Synchronous タブまたは Asynchronousタブを選択します。
1 from pymongo import MongoClient 2 3 try: 4 # start example code here 5 6 # end example code here 7 8 client.admin.command("ping") 9 print("Connected successfully") 10 11 # other application code 12 13 client.close() 14 15 except Exception as e: 16 raise Exception( 17 "The following error occurred: ", e)
1 import asyncio 2 from pymongo import AsyncMongoClient 3 4 async def main(): 5 try: 6 # start example code here 7 8 # end example code here 9 10 await client.admin.command("ping") 11 print("Connected successfully") 12 13 # other application code 14 15 await client.close() 16 17 except Exception as e: 18 raise Exception( 19 "The following error occurred: ", e) 20 21 asyncio.run(main())
接続
次のセクションでは、MongoDB のローカル インスタンスや Atlas のクラウドでホストされるインスタンスなど、さまざまなターゲットに接続する方法について説明します。
ローカル配置
次のコードは、接続文字列を接続してローカルのMongoDBデプロイに接続する方法を示しています。対応するコードを表示するには、Synchronous タブまたは Asynchronousタブを選択します。
uri = "mongodb://localhost:27017/" client = MongoClient(uri)
uri = "mongodb://localhost:27017/" client = AsyncMongoClient(uri)
Atlas
次のコードは、Atlas でホストされている配置に接続するための接続文字列を示しています。対応するコードを表示するには、Synchronous タブまたは Asynchronousタブを選択します。
uri = "<Atlas connection string>" client = MongoClient(uri, server_api=pymongo.server_api.ServerApi( version="1", strict=True, deprecation_errors=True))
uri = "<Atlas connection string>" client = AsyncMongoClient(uri, server_api=pymongo.server_api.ServerApi( version="1", strict=True, deprecation_errors=True))
レプリカセット
次のコードは、 レプリカセットに接続するための接続文字列を示しています。対応するコードを表示するには、Synchronous タブまたは Asynchronousタブを選択します。
uri = "mongodb://<replica set member>:<port>/?replicaSet=<replica set name>" client = MongoClient(uri)
uri = "mongodb://<replica set member>:<port>/?replicaSet=<replica set name>" client = AsyncMongoClient(uri)
ネットワーク圧縮
次のセクションでは、ネットワーク圧縮アルゴリズムを指定しながら MongoDB に接続する方法について説明します。
圧縮アルゴリズム
次のタブは、MongoDB に接続するときに、利用可能なすべてのコンプレッサーを指定する方法を示しています。
client = pymongo.MongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>", compressors = "snappy,zstd,zlib")
uri = ("mongodb://<db_username>:<db_password>@<hostname>:<port>/?" "compressors=snappy,zstd,zlib") client = pymongo.MongoClient(uri)
client = pymongo.AsyncMongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>", compressors = "snappy,zstd,zlib")
uri = ("mongodb://<db_username>:<db_password>@<hostname>:<port>/?" "compressors=snappy,zstd,zlib") client = pymongo.AsyncMongoClient(uri)
圧縮アルゴリズムの指定の詳細については、「 ネットワーク圧縮ガイドの 圧縮アルゴリズムの指定 」を参照してください。
zlibCompressionLevel
次のタブは、 zlib
コンプレッサーの圧縮レベルを指定する方法を示しています。
client = pymongo.MongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>", compressors = "zlib", zlibCompressionLevel=<zlib compression level>)
uri = ("mongodb://<db_username>:<db_password>@<hostname>:<port>/?" "compressors=zlib" "zlibCompressionLevel=<zlib compression level>") client = pymongo.MongoClient(uri)
client = pymongo.AsyncMongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>", compressors = "zlib", zlibCompressionLevel=<zlib compression level>)
uri = ("mongodb://<db_username>:<db_password>@<hostname>:<port>/?" "compressors=zlib" "zlibCompressionLevel=<zlib compression level>") client = pymongo.AsyncMongoClient(uri)
zlib 圧縮レベルの設定の詳細については、ネットワーク圧縮ガイドの「圧縮アルゴリズムの指定 」を参照してください。
サーバーの選択
次のコードは、サーバー選択関数を指定する接続文字列を示しています。対応するコードを表示するには、Synchronous タブまたは Asynchronousタブを選択します。
client = pymongo.MongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>", server_selector=<selector function>)
client = pymongo.AsyncMongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>", server_selector=<selector function>)
サーバー選択をカスタマイズする方法について詳しくは、「 サーバー選択をカスタマイズする 」を参照してください。
Stable API
次のコードは、接続の Stable API設定を指定する方法を示しています。対応するコードを表示するには、Synchronous タブまたは Asynchronousタブを選択します。
from pymongo.server_api import ServerApi client = pymongo.MongoClient("mongodb://<db_username>:<db_password>@<hostname:<port>", server_api=ServerApi("<Stable API version>"))
from pymongo.server_api import ServerApi client = pymongo.AsyncMongoClient("mongodb://<db_username>:<db_password>@<hostname:<port>", server_api=ServerApi("<Stable API version>"))
Stable API の詳細については、「 Stable API 」を参照してください。
MongoDB Server実行時間の制限
タイムアウト ブロック
次のコードは、timeout()
メソッドを使用してクライアント側のタイムアウトを設定する方法を示しています。
with pymongo.timeout(<timeout length>): # perform operations here
クライアント側タイムアウトの詳細については、「サーバーの実行時間の制限 」を参照してください。
timeoutMS 接続オプション
次のタブでは、timeoutMS
接続オプションを使用してクライアント側のタイムアウトを設定する方法を示します。
client = pymongo.MongoClient("mongodb://<db_username>:<db_password>@<hostname@:<port>", timeoutMS=<timeout length>)
uri = "mongodb://<db_username>:<db_password>@<hostname:<port>/?timeoutMS=<timeout length>" client = pymongo.MongoClient(uri)
client = pymongo.AsyncMongoClient("mongodb://<db_username>:<db_password>@<hostname@:<port>", timeoutMS=<timeout length>)
uri = "mongodb://<db_username>:<db_password>@<hostname:<port>/?timeoutMS=<timeout length>" client = pymongo.AsyncMongoClient(uri)
クライアント側タイムアウトの詳細については、「サーバーの実行時間の制限 」を参照してください。