2013-08-05 3 views
0

Мне нужно получить бесконечный прокручиваемый вызов API REST. У меня общий подход, но я не могу найти правильный синтаксис для того, что я пытаюсь выполнить. По сути, веб-приложение отправляет мне звонок, чтобы получить список сообщений, достаточно простой. Теперь пользователь прокручивается мимо первых 100 загруженных. Теперь, как мне получить MongoCursor, чтобы начать с того места, где я остановился?MongoCursor Positioning Infinite Scroll Application с PHP

Отправляю ли приложение int, и они возвращают его, и я просто делаю $cursor->find()->skip($x)?

Я думаю, что каким-то образом я отправлю приложение своим курсором, а затем он вернет курсор, когда он будет готов к большему количеству результатов, и я просто повторно подключу его, и он продолжается?

Я нашел этот учебник - http://artsy.github.io/blog/2013/02/15/infinite-scroll-with-mongodb/, но я не могу понять, какие параметры они отправляют и почему?

Заранее благодарим за любую помощь!

Натан

+1

Вы в основном получили это ..., 'skip' к текущему начальному индексу (целому числу), и вы можете захотеть «ограничить», чтобы получить только данные «страниц». Или, в зависимости от ваших данных, если бы вы могли сортировать по полю и всегда показывать «$ gt» последнее значение, это было бы очень эффективно. – WiredPrairie

+1

Возможный дубликат [Как правильно обрабатывать запросы разбиения на страницы с помощью mongodb и php?] (Http://stackoverflow.com/questions/3010744/how-to-handle-pagination-queries-properly-with-mongodb-and-php) – WiredPrairie

+0

'Это дубликат. Хотел бы я найти этот пост, прежде чем я это сделал. Спасибо, @WiredPrairie – nathansizemore

ответ

0

Я нашел этот учебник - http://artsy.github.io/blog/2013/02/15/infinite-scroll-with-mongodb/ , но я не могу понять, какие параметры они посылают и почему?

Разбиение на страницы и бесконечная прокрутка наилучшим образом реализованы с запросами диапазона, которые демонстрирует опубликованное вами сообщение в блоге. Пропуск и ограничение концептуально просты и на самом деле довольно хороши, если мы имеем дело только с несколькими страницами, но производительность начинает резко падать, поскольку количество страниц увеличивается до сотен.

Когда вы выдаете запрос (надеюсь, индексированный) с пропуском, MongoDB должен перейти к первому результату и пропустить «пропустить» количество раз. Для индексированных запросов это означает, что вам нужно идти по индексу, который может быть не полностью в памяти. Сравните это с запросом диапазона, который не использует пропустить, где наши критерии запрашивают данные больше или меньше, чем мы видели в последний раз, MongoDB может перейти прямо к первому результату, и нам нужно только перебирать «ограниченные» документы.

следующий ответ и в блогах объяснить тему более подробно:

Смежные вопросы