有什么方法可以使用 createQuery 应用组和分页?
is there any way where i can apply group and pagination using 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 获取正确的记录?
根据 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)
这样查询,
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 获取正确的记录?
根据 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)