43: CursorNotFound (error code 43)
MongoDBNe demek?
Sunucu tarafındaki cursor artık mevcut değil. İstemci bir sonraki batch'i (getMore) istediğinde cursor bulunamadığı için hata döner.
Neden olur?
Cursor'ın zaman aşımına uğraması (varsayılan 10 dakika hareketsizlik), batch'ler arasında çok uzun bekleme, sunucunun yeniden başlaması, veya cursor'ın açıkça kapatılmış olması.
Nasıl çözülür?
Cursor sonuçlarını daha hızlı işleyin; batch'ler arasında uzun bekleme yapmayın. Uzun süren işlemlerde noCursorTimeout seçeneğini (mongosh: cursor.noCursorTimeout(); PyMongo: no_cursor_timeout=True) dikkatli kullanın ve cursor'ı mutlaka kapatın; bir oturum (session) içindeki cursor bu seçenekle bile oturum zaman aşımında (localLogicalSessionTimeoutMinutes, varsayılan 30 dk) kapanır. Büyük sonuç kümelerinde daha küçük batchSize ile ilerleyin veya aralık tabanlı sayfalama (range-based pagination) kullanın. İşlemi baştan başlatıp yeniden sorgulayın.