【问题标题】:Can I use the connection string generated in the MongoDB Compass in Pymongo?我可以在 Pymongo 中使用 MongoDB Compass 中生成的连接字符串吗?
【发布时间】:2020-12-13 13:26:32
【问题描述】:

我正在尝试使用 Pymongo 通过 python 连接到 MongoDB。我使用的代码是: 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 连接字符串。

【问题讨论】:

  • 请添加您正在使用的连接字符串以帮助我们帮助您。您应该修改密码。

标签: mongodb pymongo mongodb-compass


【解决方案1】:

我一直在寻找这个,因为我已经习惯在 Node.js 项目中使用 MongoDB 指南针。话虽如此,以下代码对我有用。连接字符串完全从 MongoDB Compass 集群信息中粘贴(已删除敏感信息)。

import pymongo
maxSevSelDelay = 1
try:
    client = pymongo.MongoClient("mongodb+srv://<USER>:<PASSWORD>@<MONGO CLUSTER>.mongodb.net/<DB NAME>?authSource=admin&replicaSet=Cluster0-shard-0&w=majority&readPreference=primary&appname=MongoDB%20Compass&retryWrites=true&ssl=true",
                             serverSelectionTimeoutMS=maxSevSelDelay)
    client.server_info() 

except pymongo.errors.ServerSelectionTimeoutError as err:
    print(err)

【讨论】:

    猜你喜欢
    • 2019-02-19
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 2016-10-27
    • 2020-08-07
    • 2012-01-02
    相关资源
    最近更新 更多