43: CursorNotFound (код ошибки 43)
MongoDBЧто это значит?
Серверный курсор больше не существует. Когда клиент запрашивает следующий пакет (getMore), возвращается ошибка, поскольку курсор не найден.
Почему возникает?
Истёк тайм-аут курсора (по умолчанию 10 минут бездействия), слишком долгое ожидание между пакетами, перезапуск сервера или курсор был закрыт явно.
Как исправить
Обрабатывайте результаты курсора быстрее; не ждите долго между пакетами. Для длительных операций осторожно используйте параметр noCursorTimeout (mongosh: cursor.noCursorTimeout(); PyMongo: no_cursor_timeout=True) и всегда закрывайте курсор; курсор внутри сессии закрывается по тайм-ауту сессии (localLogicalSessionTimeoutMinutes, по умолчанию 30 min) даже с этим параметром. Для больших наборов результатов выполняйте итерацию с меньшим batchSize или используйте постраничную выборку по диапазонам. Перезапустите операцию и выполните запрос заново.