DBAtlas · データベース運用アトラス

43: CursorNotFound (エラーコード 43)

MongoDB

意味

サーバー側のカーソルがもう存在しない。クライアントが次のバッチを要求した (getMore) ときにカーソルが見つからないため、エラーが返される。

原因

カーソルのタイムアウト (デフォルトでは 10 分間の非アクティブ)、バッチ間の待機が長すぎる、サーバーの再起動、またはカーソルの明示的なクローズ。

対処方法

カーソルの結果をより速く処理し、バッチ間で長く待たない。長時間の操作では noCursorTimeout オプションを慎重に使い (mongosh: cursor.noCursorTimeout(); PyMongo: no_cursor_timeout=True)、必ずカーソルをクローズする。セッション内のカーソルは、このオプションを指定してもセッションタイムアウト (localLogicalSessionTimeoutMinutes、デフォルト 30 分) でクローズされる。大きな結果セットでは、より小さい batchSize で反復するか、範囲ベースのページネーションを使う。操作を再開して再度照会する。

DBAtlas で開く →

同じデータベースの他の項目