Итерация коллекции mongodb - произошло исключение - идентификатор курсора не найден ⇐ Python

Программы на Python
Anonymous
Итерация коллекции mongodb - произошло исключение - идентификатор курсора не найден

Сообщение Anonymous »

У меня есть следующий код, который подключается к mongodb (v7.0.14), работающему в Ubuntu 24.04.
Он извлекает около 1500 URL-адресов, а затем повторяет их.
Изображение

Случайно я получаю исключение CursorNotFound, которое я понять, что иногда приходится иметь дело с проблемами таймаута.
Я указал NoCursorTimeout — и обработка внутри цикла определенно занимает менее 30 минут.
код выполняется на том же компьютере, что и MONGODB.
Может ли кто-нибудь предположить, что может быть причиной этой проблемы?
Спасибо!
with mdb_client.start_session() as session:

# Fetch the connection string for the mongodb database from the config.ini file.
mongo_conn_str = config.get_mongodb_connection_string()
if (mongo_conn_str == "ERROR"):
return (False)

# Try connecting to the mongodb server. If success, just close the connection and continue. If failure - just exit this program.
mdb_client = None
try:
mdb_client = pymongo.MongoClient(mongo_conn_str)
mdb_client.server_info()
except:
print(f"{color.bcolors.FAIL}ERROR: Connection to the MONGODB Server failed. Please check the connection parameters in the config.ini file.")
return (False)

collection = mdb_client.bp2.geocatlinks.find({"last_collected_date": {"$eq": None}}, no_cursor_timeout=True)

for geocatrec in collection: // The exception happend on this line of code.

// collection now contains 1500 urls

url = geocatrec['geocat_link']

// Fetch the url and extract data

mdb_client.bp2.geocatlinks.update_one({"_id": document_id}, update_fields)

collection.close()

print(f"{color.bcolors.OKCYAN}STATUS: {now.strftime('%Y-%m-%d %H:%M:%S')} Processing Begins.....")



Подробнее здесь: https://stackoverflow.com/questions/790 ... -not-found

Вернуться в «Python»