我是ArangoDB和基于图形的遍历查询的新手。
以下是我的图表目前的结构。每个顶点都有至少一个属性(键值对)。你可以认为它有一个依赖树。每个父节点(具有自己的属性)都依赖于子节点(同样具有自己的属性)。父母与孩子的关系没有继承。
让我们说这个例子:
vertex1 有 {key1:value1}
vertex2 有 {key2:value2,key3:value3}
vertex3 有 {key4:value4}
vertex4 有 {key5:value5}
我已经从文档中找到了基本的图遍历,但是我有一个特定的要求,即根据从vertex1到maxDepth开始的顶点(访问)来构造RETURNed对象结构。
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
如果您需要其他信息,请与我们联系
答案 0 :(得分:2)
不能仅使用AQL返回上述结果,因为不支持递归。一种解决方案是使用自调用的用户定义函数(UDF)扩展AQL。有关UDF的更多信息,请访问https://docs.arangodb.com/3.2/AQL/Extending/。