首页 > 解决方案 > 如何使用 AQL 通过排序索引来抵消限制?

问题描述

我有一个members 的文档集合,它具有两个相关属性:_keyscore. 我还在persistent该字段上创建了一个索引score,因为这应该可以显着加快排序速度。我想编写一个 AQL 查询,根据特定成员(简称 A)的排序索引返回不同的结果:

标签: sortingarangodbaql

解决方案


我无法在单个查询中执行此操作,但是我能够通过执行以下操作来获取成员的等级

RETURN LENGTH(
  FOR m IN members
    FILTER m.score > DOCUMENT("members", "ID").score
    RETURN 1
) + 1

然后使用第二个查询来获取我想要的排名数据,比如

  FOR m IN members
    SORT m.score DESC LIMIT 10
    RETURN m

LIMIT 5LIMIT rank - 2, 3根据等级加入两个子查询。


推荐阅读