0

データベースをホストするために使用mongoLabsしており、アプリからデータベースに接続したいと考えています。

Motorのモジュールも使用していますpyMongo。接続をインスタンス化する場所がわかりません。

たとえば、データベースがアプリと同じローカル マシン上にある場合は、次のようにします。

 database = motor.MotorClient().open_sync().myDatabase

mongoLab サイトにはuri、ドライバーに以下を含めるように記載されています。

mongodb://<dbuser>:<dbpassword>@ds047057.mongolab.com:47057/myDatabase

しかし、このデータベースへの接続を作成する方法がわかりません。

ありがとう

4

3 に答える 3

3

MotorClient は MongoClient と同じ引数を取るようです。

https://github.com/ajdavis/mongo-python-driver/blob/motor/motor/init.py#L782 _ _

http://api.mongodb.org/python/current/api/pymongo/mongo_client.html

それを考えると、次のように URI を使用できるはずです。

database = motor.MotorClient("mongodb://<dbuser>:<dbpassword>@ds047057.mongolab.com:47057/myDatabase").open_sync().myDatabase
于 2012-12-28T17:31:12.637 に答える
2

次のマニュアルに従って、MotorClient の接続設定を指定する必要があります。 MotorClient は、 MongoClientと同じコンストラクター引数を受け取ります。 ://emptysquare.net/motor/pymongo/api/pymongo/mongo_client.html#pymongo.mongo_client.MongoClient

「ホスト パラメーターは、単純なホスト名に加えて、完全な mongodb URI にすることができます。ホスト名または URI のリストにすることもできます。ホスト文字列で指定されたポートは、ポート パラメーターをオーバーライドします。複数の mongodb URI を含む場合データベースまたは認証情報が渡されると、最後に存在したデータベース、ユーザー名、およびパスワードが使用されます。ユーザー名とパスワードの場合、':'、'/'、'+'、'@' などの予約文字は、RFC 2396 に従ってエスケープする必要があります。

db =  database = motor.MotorClient('mongodb://<dbuser>:<dbpassword>@ds047057.mongolab.com:47057/myDatabase
').open_sync().myDatabase
于 2012-12-28T17:39:48.303 に答える