如何获取用于分页的ArangoDB AQL总数
how to get total number of ArangoDB AQL for paging
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)}
还有什么好的方法可以得到这个吗?
我从 arangodb spring 数据项目中找到了这个答案。
AqlQueryOptions
有fullCount()
功能,可以return查询总计数。
并且您可以return包含查询内容和分页信息的PageImpl
。
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)}
还有什么好的方法可以得到这个吗?
我从 arangodb spring 数据项目中找到了这个答案。
AqlQueryOptions
有fullCount()
功能,可以return查询总计数。
并且您可以return包含查询内容和分页信息的PageImpl
。