Я пытаюсь подключить свое приложение Django1.9 к экземпляру облачной БД в Mongo Atlas с помощью Pymongo.Наше имя БД - account.
До сих пор я подключал свой локальный экземпляр mongodb, используя
mongoengine.connect(
username=MONGODB_DATABASES[db]['user'],
password=MONGODB_DATABASES[db]['password'],
host=MONGODB_DATABASES[db]['host'],
port=MONGODB_DATABASES[db]['port'],
db=MONGODB_DATABASES[db]['name']
)
В соответствии с примером, я должен использовать приведенную ниже строку для подключения.
import pymongo
client = pymongo.MongoClient("mongodb+srv://<DB USER>:<password>@clustername-osaot.mongodb.net/test?retryWrites=true&w=majority")
db = client.test
Я могу подключиться к кластеру через оболочку mongo.Но когда я запускаю приведенный выше код, я получаю ошибки
>>> client = pymongo.MongoClient("mongodb://BackendUser:Xunison_123@cluster0-osaot.mongodb.net/test?retryWrites=true&w=majority")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.6/site-packages/pymongo/mongo_client.py", line 248, in __init__
res = uri_parser.parse_uri(entity, port)
File "/usr/lib/python3.6/site-packages/pymongo/uri_parser.py", line 308, in parse_uri
options = split_options(opts)
File "/usr/lib/python3.6/site-packages/pymongo/uri_parser.py", line 211, in split_options
return validate_options(options)
File "/usr/lib/python3.6/site-packages/pymongo/uri_parser.py", line 153, in validate_options
option, value = validate(option, value)
File "/usr/lib/python3.6/site-packages/pymongo/common.py", line 306, in validate
value = validator(option, value)
File "/usr/lib/python3.6/site-packages/pymongo/common.py", line 53, in raise_config_error
raise ConfigurationError("Unknown option %s" % (key,))
pymongo.errors.ConfigurationError: Unknown option retryWrites
>>> client = pymongo.MongoClient("mongodb://BackendUser:Xunison_123@cluster0-osaot.mongodb.net/test?w=majority")
Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/pymongo/mongo_client.py", line 363, in __init__
self._ensure_connected(True)
File "/usr/lib/python3.6/site-packages/pymongo/mongo_client.py", line 924, in _ensure_connected
self.__ensure_member()
File "/usr/lib/python3.6/site-packages/pymongo/mongo_client.py", line 797, in __ensure_member
member, nodes = self.__find_node()
File "/usr/lib/python3.6/site-packages/pymongo/mongo_client.py", line 888, in __find_node
raise AutoReconnect(', '.join(errors))
pymongo.errors.AutoReconnect: [Errno -5] No address associated with hostname
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.6/site-packages/pymongo/mongo_client.py", line 366, in __init__
raise ConnectionFailure(str(e))
pymongo.errors.ConnectionFailure: [Errno -5] No address associated with hostname
>>>
Я не могу подключиться, даже если я удаляю все после имени кластера.
Может кто-нибудь помочь мне?