Motor(非同期ドライバー)
はじめに
非同期 Python アプリケーション用の公式 MongoDB ドライバーである Motor のドキュメントサイトへようこそ。 pip を使用して、ダウンロードします。または、チュートリアルに従って実行可能なプロジェクトをセットアップします。
Tip
非ブロッキング方式またはコルーチンから MongoDB にアクセスする必要がない場合は、代わりに PyMongo ドライバーを使用することをお勧めします。
以下のリンクから、Motor ドライバーの具体的なユースケースを説明したブログ記事をお読みください。
インストール
Motor ドライバー モジュールを Python アプリケーションで使用できるようにするには、Motor ドライバー モジュールをインストールする必要があります。Motor をインストールするには、pip の使用をお勧めします。
以下のコマンドは、コマンドラインを使用してモジュールの最新バージョンをインストールする方法を示しています。
python -m pip install motor
要件やその他のインストール方法の詳細については、Motor のインストール ドキュメントを参照してください。
MongoDB Atlas への接続
次の接続スニペットを使用して、asyncio
非同期フレームワークを使用して Atlas 上の MongoDB 配置への接続をテストできます。
import asyncio from motor.motor_asyncio import AsyncIOMotorClient from pymongo.server_api import ServerApi async def ping_server(): # Replace the placeholder with your Atlas connection string uri = "<connection string>" # Set the Stable API version when creating a new client client = AsyncIOMotorClient(uri, server_api=ServerApi('1')) # Send a ping to confirm a successful connection try: await client.admin.command('ping') print("Pinged your deployment. You successfully connected to MongoDB!") except Exception as e: print(e) asyncio.run(ping_server())
この接続スニペットは、Motor ドライバー v2.5 以降を使用して MongoDB Server v5.0 以降に接続するときに有効にできる Stable API 機能を使用します。この機能を使用すると、Stable API でカバーされるコマンドの下位互換性の問題を心配することなく、ドライバーまたはサーバーをアップデートできます。
Stable API 機能の詳細については、サーバー マニュアルの「Stable API」を参照してください。
注意
2022 年 2 月以降、Versioned API は Stable API という名前に変更しました。この名前の変更に伴うコンセプトと機能の変更はありません。
Stable API なしでの MongoDB Atlas への接続
Stable API 機能をサポートしていないバージョンの MongoDB またはドライバーを使用している場合は、次のコード スニペットを使用して、MongoDB Atlas 上の MongoDB 配置への接続をテストできます。
import asyncio from motor.motor_asyncio import AsyncIOMotorClient async def ping_server(): # Replace the placeholder with your Atlas connection string uri = "<connection string>" # Create a new client and connect to the server client = AsyncIOMotorClient(uri) # Send a ping to confirm a successful connection try: await client.admin.command('ping') print("Pinged your deployment. You successfully connected to MongoDB!") except Exception as e: print(e) asyncio.run(ping_server())
tornado
非同期ライブラリを使用している場合は、次のコードを使用して MongoDB 配置に接続できます。
import tornado import motor async def ping_server(): # Replace the placeholder with your Atlas connection string uri = "<connection string>" # Set a 5-second connection timeout when creating a new client client = motor.motor_tornado.MotorClient(uri, serverSelectionTimeoutMS=5000) # Send a ping to confirm a successful connection try: await client.admin.command('ping') print("Pinged your deployment. You successfully connected to MongoDB!") except Exception as e: print(e) tornado.ioloop.IOLoop.current().run_sync(ping_server)
ローカルマシン上の MongoDB Server への接続
Atlas クラスターを使用する代わりに、開発目的でローカル コンピューター上で MongoDB Server を実行する必要がある場合は、次の手順を完了する必要があります。
MongoDB Server の Communityバージョン または Enterprise バージョンをダウンロードします。
MongoDB Serverをインストールして構成します。
サーバーを起動します。
重要
MongoDB サーバーを悪意のある攻撃から常に保護します。セキュリティ推奨事項のリストについては、「セキュリティ チェックリスト」を参照してください。
MongoDB Serverを正常に開始したら、ドライバー接続コードで接続文字列を指定します。
MongoDB Server がローカルで実行されている場合は、接続文字列 "mongodb://localhost:<port>"
を使用できます。ここで、<port>
は、着信接続をリッスンするようにサーバーに設定したポート番号です。
別のホスト名または IP アドレスを指定する必要がある場合は、接続文字列に関するサーバー マニュアルのエントリを参照してください。
サーバーに接続できるかどうかをテストするには、MongoDB Atlas への接続に記載のコード例の接続文字列を置き換えて実行します。
互換性
MongoDB の互換性
次の互換性テーブルは、特定のバージョンの MongoDB で使用するための Motor(Python 非同期)ドライバーの推奨バージョンを示しています。
最初の列は、ドライバーのバージョンの一覧です。
重要
MongoDB は、MongoDB Server のバージョンのサポート終了(EOL)日から 3 年間、MongoDB Server とドライバー間の互換性を保証します。 MongoDB のリリースと EOL の日付の詳細については、「 MongoDB ソフトウェアライフサイクルの予定 」を参照してください。
互換性テーブルの凡例
Icon | 説明 |
---|---|
✓ | すべての機能がサポートされています。 |
⊛ | ドライバー バージョンは MongoDB バージョンで動作しますが、すべての新しい MongoDB 機能がサポートされているわけではありません。 |
マークなし | ドライバー バージョンは MongoDB バージョンではテストされていません。 |
Motor ドライバーのバージョン | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 | MongoDB 4.0 | MongoDB 3.6 |
---|---|---|---|---|---|---|---|---|
3.6 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
3.2から3.5 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
3.1 | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
3.0 | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ |
ドライバーは MongoDB の古いバージョンをサポートしていません。
言語互換性
次の互換性テーブルは、特定のバージョンの Python で使用するための Motor(Python 非同期)ドライバーの推奨バージョンを示しています。
最初の列は、ドライバーのバージョンの一覧です。
Motor ドライバーのバージョン | Python 3.13 | Python 3.12 | Python 3.11 | Python 3.10 | Python 3.9 | Python 3.8 | Python 3.7 |
---|---|---|---|---|---|---|---|
3.6 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
3.5 | ✓ | ✓ | ✓ | ✓ | ✓ | ||
3.3から3.4 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
3.1 から 3.2 | ✓ | ✓ | ✓ | ✓ | ✓ | ||
3.0 | ✓ | ✓ | ✓ | ✓ |
Motor 3.6で PyMongo 4.9をラップ
Motor 3.5 で PyMongo 4.5 を 4.8 にラップ
Motor 3.3 と 3.4 は PyMongo 4.5 をラップします。
Motor 3.2 で PyMongoyMongo 4.4+ をラップ
Motor 3.1 で PyMongo 4.2+ をラップ
Motor 3.0 で PyMongo 4.1+ をラップ
注意
asyncio をサポートするには、Motor に Python 3.4+、または PyPI の asyncio パッケージを使用した Python 3.3 が必要です。
Motor 2.3+ は Windows をサポートしています。
互換性テーブルの読み方の詳細については、「 MongoDB 互換性テーブル に関するガイドを参照してください。
ヘルプを受けるには
問題の提起や機能リクエストをする場合は、JIRA を参照してください。