gpt4 book ai didi

python - 如何解决 Pymongo 的这个错误?游标 ID 找不到 pymongo

转载 作者:行者123 更新时间:2023-12-04 18:26:46 68 4
gpt4 key购买 nike

我正在获取 MongoDB 中某个集合的全部数据,一段时间后(比如 30 或 60 分钟),脚本会引发以下错误:

pymongo.errors.CursorNotFound: cursor id 1801580172063793986 not found, full error: {'ok': 0.0, 'errmsg': 'cursor id 1801580172063793986 not found', 'code': 43, 'codeName': 'CursorNotFound'}

这个错误发生在24k文件之后。我正在使用 Django 和 Pymongo 连接到本地服务器上的数据库。该集合有大约 6 万份文件。

这就是我获取数据的方式:

client = MongoClient(settings.MONGO_HOST, settings.MONGO_PORT)
collection = client[settings.MONGO_DB].collection
cursor = collection.find(no_cursor_timeout=True)
for document in cursor:
# getting the data from the user

以防万一,我正在使用:

  • python 3.8
  • Django 3.1.4
  • Pymongo 3.11.0
  • Mongod 4.4.2(本地服务器)
  • Ubuntu 20.04

最佳答案

这不是解决错误的方法,但这是避免错误的方法。为了在尽可能短的时间内使用光标,您可以将所有数据保存在列表或类似的东西中。

client = MongoClient(settings.MONGO_HOST, settings.MONGO_PORT)
collection = client[settings.MONGO_DB].collection
cursor = collection.find(no_cursor_timeout=True)

collection_data = [document for document in cursor]
for document in collection_data:
# using the data

关于python - 如何解决 Pymongo 的这个错误?游标 ID 找不到 pymongo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65299007/

68 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com