pymongo默认数据库连接

时间:2013-07-18 10:27:07

标签: python mongodb pymongo

我需要从我的Python代码连接到MongoDB,我唯一拥有的是一个url。每mongo URL doc我可以指定数据库名称:

mongodb://host/db_name

现在我想使用从URL指定的数据库,并且不想手动解析它以提取数据库的名称。但MongoClient没有访问默认界面的界面。有任何想法如何管理?

3 个答案:

答案 0 :(得分:20)

PyMongo / MongoClient(现在)提供get_default_database()方法:

from pymongo import MongoClient

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

答案 1 :(得分: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:pass@example.com/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

答案 2 :(得分:0)

看起来根本不起作用。启动pymongo转储时警告:

  

UserWarning:URI中的数据库名称或authSource被忽略。