2012-12-28 3 views
0

Я использую mongoLabs для размещения моей базы данных, и я хочу подключиться к нему из своего приложения.Как подключиться к mongoDB

Я также использую модуль Motor в pyMongo. Я не уверен, где создать экземпляр соединения.

Например, я знаю, что, если база данных была на той же локальной машине, что и приложение, которое я хотел бы сделать это:

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

Сайт mongoLab говорит включить в драйвере следующее uri:

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

Но я не вижу, как создать соединение с этой базой данных.

Благодаря

ответ

2

Похоже 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 
+0

Спасибо за ссылки – user1869421

2

Вы должны указать параметры подключения для MotorClient следующих руководств: MotorClient принимает те же аргументы конструктора как MongoClient, а также, http://emptysquare.net/motor/pymongo/api/motor/motor_client.html#motor.MotorClient, http://emptysquare.net/motor/pymongo/api/pymongo/mongo_client.html#pymongo.mongo_client.MongoClient

«Параметр хоста может быть полным MongoDB URI, в дополнении к простому имени хоста. Он также может быть списком имен хостов или URI. Любой порт , указанный в строке хоста, переопределит параметр порта. Если передано несколько URI-адресов mongodb, содержащих базу данных или аутентификацию, , последняя база данных, имя пользователя и пароль будут использованы в . Для имени пользователя и пароля защищены символы, такие как «:», «/», «+» и «@» должны быть экранированы следующие RFC 2396»

db = database = motor.MotorClient('mongodb://<dbuser>:<dbpassword>@ds047057.mongolab.com:47057/myDatabase 
').open_sync().myDatabase