2

我是 ArangoDB 和基于图形的遍历查询的新手。

这是我的图表目前的结构。每个顶点至少有一个属性(键值对)。你可以认为它有一个依赖树。每个父节点(具有自己的属性)都依赖于子节点(再次具有自己的属性)。没有继承只是父母与孩子的关系。

让我们说这个例子:

vertex1{ key1: value1 }

顶点 2{ key2 : value2, key3: value3 }

vertex3{ key4 : value4 }

vertex4{ key5 : value5 }

在此处输入图像描述

我已经从文档中找出了基本的图形遍历,但是我有一个特定的要求,即根据从顶点 1 到最大深度的存在(访问)的顶点来构造返回的对象结构。

RETURN 对象必须具有以下结构:如您所见,随着顶点深度的增加,对象将嵌套在父节点下。

{
  vertex1: {
    key1:value1
    vertex2: {
      key2:value2,
      key3:value3,
      vertex3: {
        key4:value4
      }
    }
    vertex4: {
      key5:value5
    }
  }
}

我不能要求您为我编写查询,但非常感谢任何帮助,并将让我朝着正确的方向前进。

根据我目前的理解:

FOR v IN 1..2 OUTBOUND 'vertex1' GRAPH 'grapgName'
//I'm guessing I would have to COLLECT and GROUP 
//on the existing vertex to projected object structure. 
//I just don't know how :(
RETURN returnObj

如果您需要更多信息,请告诉我

4

1 回答 1

2

由于不支持递归,因此无法仅使用 AQL 返回上述结果。一种解决方案是使用自调用用户定义函数 (UDF) 扩展 AQL。有关 UDF 的更多信息,请访问https://docs.arangodb.com/3.2/AQL/Extending/

于 2017-08-28T15:04:55.170 回答