Docs Menu
Docs Home
/ / /
Pymongo ドライバー

MongoDB に接続する

このページには、Python アプリケーションをさまざまな設定で MongoDB に接続する方法を示すコード例が含まれています。

Tip

このページの接続オプションの詳細については、各セクションに記載されているリンクを参照してください。

このページの接続例を使用するには、コード例をサンプル アプリケーションまたは独自のアプリケーションにコピーします。 <hostname>など、コード例にあるすべてのプレースホルダーを、MongoDB 配置に関連する値に置き換えてください。

次のサンプルアプリケーションを使用して、このページのコード例をテストできます。 サンプル アプリケーションを使用するには、次の手順を実行します。

  1. PyMongo がインストールされていることを確認します。

  2. 次のコードをコピーし、新しい.pyファイルに貼り付けます。

  3. このページからコード例をコピーし、 ファイル内の指定された行に貼り付けます。

対応するコードを表示するには、Synchronous タブまたは Asynchronousタブを選択します。

1from pymongo import MongoClient
2
3try:
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
15except Exception as e:
16 raise Exception(
17 "The following error occurred: ", e)
1import asyncio
2from pymongo import AsyncMongoClient
3
4async 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
21asyncio.run(main())

次のセクションでは、MongoDB のローカル インスタンスや Atlas のクラウドでホストされるインスタンスなど、さまざまなターゲットに接続する方法について説明します。

次のコードは、接続文字列を接続してローカルのMongoDBデプロイに接続する方法を示しています。対応するコードを表示するには、Synchronous タブまたは Asynchronousタブを選択します。

uri = "mongodb://localhost:27017/"
client = MongoClient(uri)
uri = "mongodb://localhost:27017/"
client = AsyncMongoClient(uri)

次のコードは、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)

圧縮アルゴリズムの指定の詳細については、「 ネットワーク圧縮ガイドの 圧縮アルゴリズムの指定 」を参照してください。

次のタブは、 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設定を指定する方法を示しています。対応するコードを表示するには、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 」を参照してください。

次のコードは、timeout() メソッドを使用してクライアント側のタイムアウトを設定する方法を示しています。

with pymongo.timeout(<timeout length>):
# perform operations here

クライアント側タイムアウトの詳細については、「サーバーの実行時間の制限 」を参照してください。

次のタブでは、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)

クライアント側タイムアウトの詳細については、「サーバーの実行時間の制限 」を参照してください。

戻る

はじめる

項目一覧

  • Overview
  • サンプル アプリケーション
  • 接続
  • ローカル配置
  • Atlas
  • レプリカセット
  • ネットワーク圧縮
  • 圧縮アルゴリズム
  • zlibCompressionLevel
  • サーバーの選択
  • Stable API
  • MongoDB Server実行時間の制限
  • タイムアウト ブロック
  • timeoutMS 接続オプション