Нет простого способа выполнить нумерацию страниц в CosmosDb (или в большинстве / любой базе данных NoSQL в этом отношении), поскольку skip / take на самом деле не поддерживается шаблоном запроса.
Более распространенным шаблоном является сохранение ссылки на последний элемент, видимый на стороне клиента, в виде continuation token
, который можно отправить обратно на сервер при последующих запросах. Например, пользователь запрашивает первые 10 элементов и возвращает результат обратно. Идентификатор 10-го элемента - asdfb1231
. Запрос на получение второй «страницы» будет включать это значение, чтобы серверная часть могла продолжить запрос с этого смещения.
Об этом много писали в других местах. Одна из моих любимых статей на эту тему была написана блестящим Яном Цуй https://hackernoon.com/guys-were-doing-pagination-wrong-f6c18a91b232, который я очень рекомендую прочитать.