【问题标题】:What's the best way to make EXISTS query in ArangoDB在 ArangoDB 中进行 EXISTS 查询的最佳方法是什么
【发布时间】:2018-12-21 15:16:43
【问题描述】:

我想检查一个查询(过滤器)是否不为空,在 PostgreSQL 中是这样的:

select EXISTS(select 1 from tab where tab.name = 'abc')

https://www.postgresql.org/docs/11/functions-subquery.html

我目前在 AQL 中的方法是:

RETURN LENGTH(for d in tab filter d.name = 'abc' RETURN 1) > 0

【问题讨论】:

    标签: arangodb aql


    【解决方案1】:

    子查询FOR d IN tab FILTER d.name == 'abc' 可能会在早期找到匹配的文档,但会继续寻找更多,因为没有定义限制。因此,我会建议:

    RETURN LENGTH(FOR d IN tab FILTER d.name == 'abc' LIMIT 1 RETURN true) > 0
    

    这将返回[ true ] 作为查询结果。

    你也可以RETURN dstarting from v3.4.0。优化器规则 optimize-subqueries 识别模式 LENGTH(... RETURN doc) 并将 doc 替换为常量值 true

    【讨论】:

      猜你喜欢
      • 2017-11-01
      • 1970-01-01
      • 2015-09-04
      • 2012-02-21
      • 2012-07-20
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多