【发布时间】:2016-06-02 05:26:16
【问题描述】:
如何在 AQL 中像这个 SQL 示例一样执行FILTER?
SELECT * FROM test WHERE option NOT IN ('A', 'B', 'C')
【问题讨论】:
如何在 AQL 中像这个 SQL 示例一样执行FILTER?
SELECT * FROM test WHERE option NOT IN ('A', 'B', 'C')
【问题讨论】:
在 v2.3 及以上版本中,可以这样做:
FOR doc IN test
FILTER doc.option NOT IN [ 'A', 'B', 'C' ]
RETURN doc
在早期版本中,以下应该可以工作:
FOR doc IN test
FILTER ! (doc.option IN [ 'A', 'B', 'C' ])
RETURN doc
【讨论】:
! > NOT(...) 的别名就好了。更好的是类似 python 的构造 NOT IN,因此您可以输入您说话/思考的方式并避免使用括号。
NOT IN 结构将出现在 ArangoDB 版本 2.3 或 2.4 中,其中包含一些主要的 AQL 重写。