#mongodb #pymongo #mongodb-compass
#mongodb #pymongo #mongodb-compass
Вопрос:
Я пытаюсь подключиться к MongoDB с помощью python, используя Pymongo. Код, который я использовал, является: cluster=MongoClient("connection_String_url")
connection_String_url был сгенерирован в MongoDB Compass. Эта команда может быть выполнена на python, но, похоже, она не работает, потому что все другие операции, в которых использовался этот кластер, имели ту же ошибку «Ошибка тайм-аута выбора сервера: сбой подтверждения SSL».
Основываясь на некоторых других ответах, я попробовал «ssl_cert_reqs = ssl.CERT_NONE», но также не работает с ошибкой: не авторизован администратором для выполнения команды. MongoClient("connection_String_url",ssl_cert_reqs=ssl.CERT_NONE)
Команда также может быть выполнена через.
Мне просто интересно, связано ли это с моим кодом или этот «connection_String_url» просто не может быть использован в этом случае, потому что я вижу, что люди обычно используют строку подключения Altas в этом случае.
Комментарии:
1. Пожалуйста, добавьте строку подключения, которую вы используете, чтобы помочь нам помочь вам. Вы должны отредактировать пароль.
Ответ №1:
Я искал это некоторое время, так как я привык использовать MongoDB compass с Node.js проекты. С учетом сказанного, следующий код помог мне подключиться. Строка подключения вставляется точно из информации кластера MongoDB Compass (с удалением конфиденциальной информации).
import pymongo
maxSevSelDelay = 1
try:
client = pymongo.MongoClient("mongodb srv://<USER>:<PASSWORD>@<MONGO CLUSTER>.mongodb.net/<DB NAME>?authSource=adminamp;replicaSet=Cluster0-shard-0amp;w=majorityamp;readPreference=primaryamp;appname=MongoDB Compassamp;retryWrites=trueamp;ssl=true",
serverSelectionTimeoutMS=maxSevSelDelay)
client.server_info()
except pymongo.errors.ServerSelectionTimeoutError as err:
print(err)