Arangodb AQL中按类型过滤图边的最佳方法是什么

Arangodb AQL中按类型过滤图边的最佳方法是什么,arangodb,aql,Arangodb,Aql,我有以下超级简单图: 我想做的是: 选择问题文档中名为firstQuestion的属性值为true的所有问题 选择通过带有\u选项类型的出站边缘连接到问题的任何选项 下面的查询可以工作,但是感觉必须有一种更好的方法来检查边缘类型,而不使用字符串操作-特别是通过将边缘连接到具有所需边缘类型的键来重新创建边缘id值的连接操作-这是检查边缘类型的最佳方法吗? FOR question IN questions FILTER question.firstQuestion == true let

我有以下超级简单图:

我想做的是:

  • 选择问题文档中名为firstQuestion的属性值为true的所有问题
  • 选择通过带有\u选项类型的出站边缘连接到问题的任何选项
  • 下面的查询可以工作,但是感觉必须有一种更好的方法来检查边缘类型,而不使用字符串操作-特别是通过将边缘连接到具有所需边缘类型的键来重新创建边缘id值的连接操作-这是检查边缘类型的最佳方法吗?

    FOR question IN questions 
    FILTER question.firstQuestion == true
        let options = 
            (FOR v, e IN 1..1 OUTBOUND question._id GRAPH 'mygraph'
            FILTER CONCAT('with_options/', e._key) == e._id
            RETURN v)
    RETURN {question: question, options: options}
    

    我们目前正在使用Arangodb2.8.1实现这一特定目的。 在这种情况下,该功能也值得一提

    FOR question IN questions 
      FILTER question.firstQuestion == true
      LET options = (FOR v, e IN 1..1 OUTBOUND question._id GRAPH 'mygraph'
                       FILTER IS_SAME_COLLECTION('with_options', e._id)
                         RETURN v)
      RETURN {question: question, options: options}
    
    但是,在这种特殊情况下,最好的解决方案不是使用命名图接口,而是首先:

    FOR question IN questions 
      FILTER question.firstQuestion == true
      LET options = (FOR v, e IN 1..1 OUTBOUND question._id with_options RETURN v)
      RETURN {question: question, options: options}