ArangoDB - 带“!=”运算符的数据库索引

ArangoDB - DB index with "!=" operator

我正在使用 ArangoDB 为 Web 应用程序设计数据库。 我编写了以下 AQL 查询:

FOR result
 IN Collection
 FILTER result.field != 'undefined'
 RETURN result

我为 字段 添加了某种类型的索引,但查询绝不会使用任何索引。

您认为问题是什么? 我读到对于 == 运算符我们可以使用 hash index 而对于 <= 或类似的运算符 skip list.

现在,做同样事情的正确方法是什么?

(粘贴上面我自己的评论作为答案,以便将问题标记为已回答):

如果在属性上使用 != 运算符,则不会使用索引。

首先,ArangoDB中的哈希索引不支持这种操作。

对于skiplist索引,该操作理论上可以转化为result.field < 'undefined' OR result.field > 'undefined',因此理论上可以从该索引中查询两个不相交的范围。但总的来说,使用索引的目的是在查询中尽早过滤掉尽可能多的文档,而且在很多情况下 != 不会导致很大的减少