如何获取用于分页的ArangoDB AQL总数

时间:2019-06-04 11:16:00

标签: arangodb aql

AQL支持通过LIMIT offset, count进行分页的基本AQL。但是我需要获取查询的总数才能知道页面总数。如何获取查询的总数?

我知道LENGTH函数用于获取某些集合的计数,但可能不适用于以下情况:

FOR v in 2 any 'Collection/id1' GRAPH 'graph-name' FILTER ... LIMIT 10 RETURN distinct v.

我想获取总数,但是无法通过RETURN distinct LENGTH(v)

来获取总数

我现在可以以不优雅的方式实现此目的:

LET nodeList=(FOR v IN 2 any 'Collection/id1' GRAPH 'graph-name' FILTER ... RETURN distinct v)
FOR v IN 2 any 'Collection/id1' GRAPH 'graph-name' FILTER ... limit 10 RETURN distinct {'nodes': v, 'total':LENGTH(nodeList)}

还有其他好主意吗?

1 个答案:

答案 0 :(得分:2)

我从arangodb spring数据项目中找到了这个答案。

AqlQueryOptions具有fullCount()函数,以返回查询的总数。

,您可以返回PageImpl,其中包含查询内容和分页信息。