Есть ли способ, где я могу применить группу и нумерацию страниц, используя 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)
Другие вопросы по тегам