2013-07-18 21 views
9

私はPythonコードからMongoDBに接続する必要がありますが、唯一のことはURLです。 mongo URL doc当たりのIは、データベース名を指定することができます。pymongoデフォルトのデータベース接続

mongodb://host/db_name 

今私はURLから指定された正確にデータベースを使用すると、データベースの名前を抽出するために、手動でそれを解析する必要はありませんしたいと思います。しかしMongoClientには、デフォルトのものにアクセスするためのインターフェースがありません。どのようにこれを管理するための任意の考えですか?

答えて

16

PyMongo/MongoClientは(今)get_default_database()方法提供しませんを参照してください:

from pymongo import MongoClient 

client = MongoClient("mongodb://host/db_name") 
db = client.get_default_database() 
+0

良いニュースを、私がチェックします – Dewfy

0

まったく動作しないようです。開始時にpymongoダンプ警告:

UserWarning:URIのデータベース名またはauthSourceが無視されています。

3

あなたはこのためにpymongo.uri_parser.parse_uri使用することができます。

Python 2.7.5 (default, Jul 12 2013, 14:44:36) 
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> uri = "mongodb://user:[email protected]/my_database/?w=2" 
>>> from pymongo.uri_parser import parse_uri 
>>> parse_uri(uri) 
{'username': 'user', 'nodelist': [('example.com', 27017)], 'database': 'my_database/', 
'collection': None, 'password': 'pass', 'options': {'w': 2}} 

PyMongo 2.6では、このためget_default_database()メソッドが存在します。 PYTHON-461