2014-11-04 3 views
0

У меня есть база данных Mongodb, которая содержит сборник опросов. В сборнике опросов имеется ряд документов для голосования. Это может быть большое количество документов.Как получать данные динамически с веб-сервера?

Я использую Java Servlet для обслуживания HTTP-запросов.

Как я могу реализовать механизм поиска каналов на стороне сервера? Например, в первом запросе я хочу получить от 1 до 10 документов, а затем от 11 до 20 и т. Д. Поскольку в представлении есть прокрутка, я хочу получить данные с сервера и отправить клиент.

Предоставляет ли Mongodb способ сделать это?

ответ

1

Я думаю, что вы ищете, это разбиение на страницы. Вы можете использовать методы ограничения и пропуска с помощью запроса поиска.

First request 
db.Poll.find().skip(0).limit(10) 

Second request 
db.Poll.find().skip(10).limit(10) 
... 
... 

Примечание: Вы также должны сортировать свою находку с некоторым полем.

db.Poll.find().skip(10).limit(10).sort({_id:-1}) 

Для получения дополнительной информации о методах управления курсором вы можете посмотреть здесь: http://docs.mongodb.org/manual/reference/method/js-cursor/

+0

Спасибо :) Так что, делает курсор, не заманит все документы в коллекции? Кроме того, сортировка каждый раз, вероятно, потребует много времени? Есть ли лучший подход? – PavanMysore

+1

Нет, курсор не будет извлекать все документы. Если вы не сортируете, вы можете не получить данные в правильном порядке. Если запрос занимает много времени, попробуйте добавить индекс. –

+0

Большое спасибо Lalit, ваш ответ действительно полезен. – PavanMysore

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