Разнообразный пейджинговый монгодб

в документах mongodb говорится: (источник)

К сожалению, пропуск может быть (очень) дорогостоящим и требует, чтобы сервер ходьбы от начала коллекции или индекса, чтобы добраться до offset/skip, прежде чем он сможет начать возвращать страницу данных (Предел). По мере увеличения количества страниц пропуск будет медленнее и более интенсивность процессора и, возможно, привязка к IO, с большими коллекциями. Ассортимент основанный на пейджинге, обеспечивает лучшее использование индексов, но не позволяет легко перейти на определенную страницу.

Что такое подкачка на основе диапазона и где для нее документация?

Ответ 1

Основная идея - написать пейджинг в шаблон предиката запроса.

Например, если вы публикуете сообщения по форумам по дате и хотите показать следующую страницу, используйте дату последнего сообщения на текущей странице в качестве предиката. MongoDB может использовать индекс, построенный на поле даты.

//older posts
db.forum_posts.find({date: {$lt: ..last_post_date..} }).sort({date: -1}).limit(20);

Конечно, это немного усложняется, если поле, которое вы используете для сортировки, не уникально.