arangoDB aql可以按条件跳过过滤器吗?

时间:2017-04-13 07:43:08

标签: javascript arangodb aql

我最近为一个bbs应用程序工作,当我使用aql时,我遇到了一个问题,例如:

//params:.com/t/123?&digest=true
=>
  FOR t IN threads
    FILTER t.digest == true && some conditions
    RETURN t

,结果如预期,但当参数“消化”时是未定义或错误,我希望它返回所有的线程..不是哪个'消化' = false,所以我必须使用if ... else来编写两个几乎相同的代码,只需删除条件&t; t.digest == true'例如:

if(params.digest) {
  return `digest == true && conditions`
} 
return `conditions`

我正在使用javascript,请给我一个方向......

1 个答案:

答案 0 :(得分:0)

您可以使用函数HAS(document, attributeName)来检查文档中是否存在该属性。

FOR t IN threads
  FILTER (!HAS(t,"digest") || i.digest == true) && conditions
  RETURN t