Есть ли способ, где я могу применить группу и нумерацию страниц, используя createQuery?
Запрос, как это,
http://localhost:3030/dflowzdata? $ skip = 0 & $ group = uuid & $ limit = 2
и сервис dflowzdata содержит такие данные, как,
[{"uuid": 123456, "id": 1}, {"uuid": 123456, "id": 2}, {"uuid": 7890, "id": 3}, {"uuid": 123456, "id": 4}, {"uuid": 4567, "id": 5}]
Прежде чем найти Hook, как,
if (query.$group !== undefined) {
let value = hook.params.query.$group
delete hook.params.query.$group
const query = hook.service.createQuery(hook.params.query);
hook.params.rethinkdb = query.group(value)
}
Это дает правильный результат, но без нумерации страниц, как будто мне нужны только две записи, но это дает мне все записи
результат,
{"total":[{"group":"123456","reduction":3},{"group":"7890","reduction":1},{"group":"4567","reduction":3}],"data":[{"group":"123456","reduction":[{"uuid":"123456","id":1},{"uuid":"123456","id":2},{"uuid":"123456","id":4}]},{"group":"7890","reduction":[{"uuid":"7890","id":3}]},{"group":"4567","reduction":[{"uuid":"4567","id":5}]}],"limit":2,"skip":0}
Может кто-нибудь помочь мне, как получить правильные записи, используя $limit?
1 ответ
Согласно документации по типам данных, вызовены команды ReQL GROUPED_DATA
работать с каждой группой индивидуально. Для более подробной информации читайте group
документация. Так limit
не будет применяться к результату group
,
Страница для group
говорит: чтобы оперировать всеми группами, а не оперировать в каждой группе [...], вы можете использовать ungroup
превратить сгруппированный поток или сгруппированные данные в массив объектов, представляющих группы.
следовательно ungroup
применять функции к group
результат:
r.db('db').table('table')
.group('uuid')
.ungroup()
.limit(2)