【问题标题】:can arangoDB aql skip filters by condition?arangoDB aql 可以按条件跳过过滤器吗?
【发布时间】:2017-04-13 07:43:07
【问题描述】:

我最近在做一个bbs应用,在使用aql的时候遇到了一个问题,例如:

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

结果符合预期,但是当参数'digest'未定义或为假时,我希望它返回所有线程..not which'digest' = false,所以我必须使用 if...else 来编写两个几乎相同的代码,只需删除条件 't.digest == true' 例如:

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

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

【问题讨论】:

    标签: javascript arangodb aql


    【解决方案1】:

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

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

    【讨论】:

    • params由url生成,如果访问者想查看摘要线程=>**params.digest=true**,我会添加条件t.digest==true进入查询,但如果访问者正常查看,我必须添加类似的代码,我的意思是我想要一种方便的方式:
    • params由url生成,如果访问者想查看摘要线程=>**params.digest=true**,我会添加条件t.digest==true 进入查询,但如果访问者正常查看,我必须添加类似的代码,我的意思是我想要一种方便的方式:filter ${params.digest? 't.digest == true && ' : ''} conditions
    • 对不起cmets,我是这个网站的初学者,谢谢你帮助我
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 2019-11-15
    • 1970-01-01
    相关资源
    最近更新 更多