Запрос ReactiveMongo не может разбить на страницы

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

Вот мой запрос:

def listConvos(userId: String, page: Int, pageSize: Int) = {
val query = BSONDocument("userId" -> userId)
val sort = BSONDocument("lastActivity" -> -1)
val skipN = (page-1) * pageSize
val queryOptions = new QueryOpts(skipN = skipN, batchSizeN = pageSize, flagsN = 0)

collection.find(query).options(queryOptions).sort(sort).cursor[ConvoDesc](ReadPreference.primaryPreferred).collect[List]()

Обратите внимание, что нумерация страниц начинается с 1. Используя отладчик IntelliJ, значения для переменных выше:

userId = "29aosidfj43903p"
query = BSONDocument(<non-empty>)
sort = BSONDocument(<non-empty>)
queryOptions = QueryOpts(10,10,0)
page = 2
pageSize = 10

Я также могу подтвердить, что установил составной индекс для полей userId и lastActivity. Спасибо за вашу помощь!


person crockpotveggies    schedule 16.11.2015    source источник
comment
Пожалуйста, укажите версии, которые вы используете.   -  person cchantep    schedule 17.11.2015


Ответы (1)


Решение заключалось в том, чтобы также включить размер страницы в метод collect следующим образом:

collection.find(query).options(queryOptions).sort(sort).cursor[ConvoDesc](ReadPreference.primaryPreferred).collect[List](pageSize)
person crockpotveggies    schedule 16.11.2015