Ваше понимание более или менее верно, но курсор не может рассматриваться как простое добавление фильтров. Предположим, у вас есть набор результатов, упорядоченный сначала по возрасту, а затем по имени. Если ваш последний возвращенный результат имеет возраст = 30 и имя = Боб, нет набора критериев, который будет возвращать именно результаты после этого - возраст> = 30 и имя> Боб не вернет Алису, которой 31 год.
Курсор больше похож на закладку в вашем наборе результатов. Он обозначает место, где вы остановились, чтобы вы могли вернуться позже. Если результирующий набор изменяется до или после вашего курсора, курсор остается на том же месте, поэтому вы всегда будете выбирать, где остановились.
Чтобы ответить на другие ваши вопросы: Да, запросы всегда имеют подразумеваемый порядок. То, что это, зависит от рассматриваемого запроса (в вашем случае он будет сначала по возрасту, затем по key ), но это гарантирует, что по результатам будет общий порядок. Статья подкачки, на которую вы ссылаетесь, устарела и предоставляет предварительный подход к разбивке на страницы. Вы можете игнорировать это в пользу курсоров.
Вы можете просто передавать курсоры между задачами (и для пользователей, и для пользователей). Если вы видите ошибку, вам нужно будет показать нам трассировку стека, прежде чем мы сможем вам помочь.