Context
Cursor/AsyncCursor is the cursor class returned by collection.find(). The name Cursor is overly generic — it says nothing about what distinguishes it from CommandCursor/AsyncCommandCursor, which is returned by commands like aggregate, listIndexes, and listCollections.
Renaming to FindCursor/AsyncFindCursor makes the contrast immediately readable ("one comes from find, one comes from a command") and is consistent with the naming convention used in the Node.js and Java drivers.
Definition of done
- Rename AsyncCursor → AsyncFindCursor and Cursor → FindCursor (and _RawBatchCursor → _RawBatchFindCursor)
- Rename pymongo/asynchronous/cursor.py → pymongo/asynchronous/find_cursor.py (and sync equivalent)
- Add deprecated aliases AsyncCursor = AsyncFindCursor and Cursor = FindCursor for backwards compatibility
- Update changelog and public documentation
Pitfalls
- Cursor/AsyncCursor are part of the public API; deprecation aliases are required
- All internal references, imports, and type annotations across the codebase need updating