2012-01-14 11 views

答えて

10

これはMongoLabのWillです。公式のpythonドライバ(pymongo)を使ってPythonで接続する方法の一般的な例があります。この例は、言い方ではHerokuからの接続用ではありませんが、似ているはずです。違いは、あなたのHeroku ENV環境からドライバーの設定を抜き取って、ドライバーに供給する必要があることです。それでも問題が解決しない場合は

https://github.com/mongolab/mongodb-driver-examples/blob/master/python/pymongo_simple_example.py

-will

+1

OPの質問だった、特にHerokuには対処しません。 – claymation

4

は、コマンドラインでheroku configを実行して、接続文字列の設定を取得しインストールした後[email protected]に直接お気軽にお問い合わせあなたのherokuアプリへのアドオン。

このフォームでキーMONGOLAB_URIを持つエントリがあります:

MONGOLAB_URI => mongodb://user:[email protected]:27707/db

URI文字列からの接続を作成することによって、PythonでURIから単に情報。

1

私はこのような何かが動作するはずだと思う:

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'}) 
6

私は次のように使用しています:

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) 
0

PyMongoは今、この全体の運動は些細なりget_default_database()方法を提供し、

from pymongo import MongoClient 

client = MongoClient(os.environ['MONGOLAB_URI']) 
db = client.get_default_database() 
関連する問題