【问题标题】:Error when finding value in pymongo Mongodb在 pymongo Mongodb 中查找值时出错
【发布时间】:2021-12-14 21:16:11
【问题描述】:

代码

client = pymongo.MongoClient("mongodb+srv://username:password@cluster0.zcui8.mongodb.net/db?retryWrites=true&w=majority&ssl=true&ssl_cert_reqs=CERT_NONE")
db = client["db"]

#this gives the error
res = list(db.listings.find({}).limit(15).sort([('$natural',-1)]))

错误:

pymongo.errors.ServerSelectionTimeoutError: No replica set members found yet

我在分配变量res 的行中收到此错误。 在我的机器上运行它时我没有得到这个错误,但是当我在服务器上运行它时我得到了错误。

【问题讨论】:

  • 您是否将应用服务器的新 IP 地址添加到 Atlas 上的允许列表中?
  • 不,我添加了0.0.0.0,所以每个人都应该能够连接。

标签: python database mongodb networking pymongo


【解决方案1】:

我尝试了这些答案中的所有解决方案,但唯一有效的就是 使用flask_pymongo 模块而不是pymongo。现在我没有收到任何错误。

【讨论】:

    【解决方案2】:

    这种类型的错误通常是:

    • 未使用最新的pymongo 驱动程序 (https://pypi.org/project/pymongo/列出当前最新版本)
    • 没有安装 dnspython 模块(我有问题 2.1.0 所以 会推荐 2.0.0)

    【讨论】:

    • 我有 dnspython,如何在 Cpanel 上将 pymongo 更新到最新版本?
    • 不知道没用过。
    • 如果你可以访问命令行,你可以运行:“python pip install pymongo”或“sudo python pip install pymongo”
    • 我更新了 pymongo 并确保 dnspython 是 2.0.0 版本,但仍然出现此错误:pymongo.errors.ServerSelectionTimeoutError: No replica set members found yet, Timeout: 30s, Topology Description: <TopologyDescription id: 617d23fae48c883eebfe53be, topology_type: ReplicaSetNoPrimary, servers: [<ServerDescription ('cluster0-shard-00-00.zuia8.mongodb.net', 27017) server_type: Unknown, rtt: None>, <ServerDescription ('cluster0-shard-00-01.zuia8.mongodb.net', 27017) server_type: Unkn
    猜你喜欢
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 2023-04-03
    • 2022-01-19
    相关资源
    最近更新 更多