Диапазонная разбивка на страницы MongoDB

Сказано, что использование skip() для разбиения на страницы в коллекции MongoDB с большим количеством записей медленно и не рекомендуется.

Можно использовать ранжированную разбивку на страницы (основанную на сравнении >_id)

db.items.find({_id: {$gt: ObjectId('4f4a3ba2751e88780b000000')}});

Это хорошо для отображения кнопок prev. & next - но это не очень легко реализовать, когда вы хотите отобразить фактические номера страниц 1 ... 5 6 7 ... 124 - нужно заранее рассчитать, с какого «_id» начинается каждая страница.

Итак, у меня есть два вопроса:

1) Когда я должен начать беспокоиться об этом? Когда есть «слишком много записей» с заметным замедлением для skip()? 1 000? 1 000 000?

2) Как лучше всего показывать ссылки с фактическими номерами страниц при использовании ранжированной разбивки на страницы?

67
задан Roman 27 January 2013 в 13:14
поделиться