ドキュメントでは、Ruby から行う方法についてのみ説明しています。
5 に答える
MongoLabのWillです。公式の python ドライバー (pymongo) を使用して Python で接続する方法の一般的な例があります。この例は、言うまでもなく Heroku から接続するためのものではありませんが、似ているはずです。違いは、Heroku ENV 環境からドライバー設定を取得してドライバーに提供する必要があることです。
https://github.com/mongolab/mongodb-driver-examples/blob/master/python/pymongo_simple_example.py
それでも問題が解決しない場合は、support@mongolab.com まで直接お問い合わせください。
-意思
私は以下を使用しています:
import os
from urlparse import urlsplit
from pymongo import Connection
url = os.getenv('MONGOLAB_URI', 'mongodb://localhost:27017/testdb')
parsed = urlsplit(url)
db_name = parsed.path[1:]
# Get your DB
db = Connection(url)[db_name]
# Authenticate
if '@' in url:
user, password = parsed.netloc.split('@')[0].split(':')
db.authenticate(user, password)
heroku config
アドオンを heroku アプリにインストールした後、コマンド ラインで実行して接続文字列の設定を取得します。
次の形式でキー MONGOLAB_URI を持つエントリがあります。
MONGOLAB_URI => mongodb://user:pass@xxx.mongolab.com:27707/db
URI文字列から接続を作成することにより、PythonのURIからの情報だけです。
私はこのようなものがうまくいくはずだと思います:
import os
import sys
import pymongo
mongo_url = os.getenv('MONGOLAB_URI', 'mongodb://localhost:27017')
db_name = 'mongotest'
if __name__ == '__main__':
try:
connection = pymongo.Connection(mongo_url)
if 'localhost' in self.mongo_url:
db_name = 'my_local_db_name'
else:
db_name = self.mongo_url.rsplit('/',1)[1]
database = connection[db_name]
except:
print('Error: Unable to Connect')
connection = None
if connection is not None:
database.test.insert({'name': 'foo'})
PyMongo は、get_default_database()
この演習全体を簡単にするメソッドを提供するようになりました。
from pymongo import MongoClient
client = MongoClient(os.environ['MONGOLAB_URI'])
db = client.get_default_database()