Есть ли способ, где я могу применить группу и нумерацию страниц, используя createQuery? - PullRequest
0 голосов
/ 27 сентября 2018

Запрос подобный этому,

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}]

Перед Find 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 Ответ

0 голосов
/ 28 сентября 2018

Согласно документации по типам данных , Команды ReQL, вызываемые на GROUPED_DATA, работают с каждой группой индивидуально.Для получения более подробной информации прочитайте документацию group. Так что limit не будет применяться к результату group.

Страница для group сообщает: для работы со всеми группами вместо того, чтобы работать с каждой группой [...], вы можете использовать ungroup, чтобы превратить сгруппированный поток или сгруппированные данные в массив объектов, представляющих группы .

Следовательно ungroup для применения функций к результату group:

r.db('db').table('table')
.group('uuid')
.ungroup()
.limit(2)
...