Подключение Django к кластеру Mongo Atlas - PullRequest
0 голосов
/ 30 мая 2019

Я пытаюсь подключить свое приложение 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
>>>

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

Может кто-нибудь помочь мне?

1 Ответ

1 голос
/ 31 мая 2019

Согласно документации - вам нужно будет обновить версию до 3.4 или выше.Эту документацию можно найти в меню Atlas Cluster - Connect (там же, где вы нашли строку подключения).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...