(本小结用到的数据在ArangoDB学习笔记(二)--文档的创建,ArangoDB学习笔记(五)--连接文档中已创建)
创建了图,就可以根据关系查询。知道某个child的id,根据图关系就可以找到其parent。
这个for循环没有遍历任何集合或数组,它遍历了整个图,寻找与‘Characters/1906’连接的节点,1..1表示最小和最大遍历深度都为1,outbound指定搜寻方向,表示c是起点。我们的边文档是由child指向parent,深度为1,因此返回child节点‘Characters/1906’指向的parent节点。下面语句具有同样效果。
结果如下,
将上面的outbound改为inbound就可以实现由parent寻找child。Inbound表示其后的节点是终点。如下所示,在图中搜寻终点为c的相邻节点。
结果如下。
还可以改变遍历深度,将1..1改为2..2可以span from parent to grandchild。
结果如下,
也许你会感到奇怪,为什么Joffrey返回了两次。从图中可以发现,有两条路径从Tywin到joffrey。
在return时增加distinct关键字可以避免重复结果。
将1..1改为1..2,表示遍历深度最小为1最大为2,下面方法可以找到Joffrey的父母和祖父母。
结果如下,