这样查询
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 } ]
像“寻找钩子”之前,
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获得正确的记录吗?
答案 0 :(得分:1)
根据the documentation on data types,在GROUPED_DATA
上调用的 ReQL命令分别在每个组上运行。有关更多详细信息,请阅读group
文档。因此,limit
不适用于group
的结果。
The page for group
告诉您:要对所有组进行操作而不是对每个组进行操作,可以使用ungroup
将分组流或分组数据转换为数组代表组的对象。
因此ungroup
将函数应用于group
的结果:
r.db('db').table('table')
.group('uuid')
.ungroup()
.limit(2)