AQL学习笔记(七)--遍历图

(本小结用到的数据在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的父母和祖父母。

结果如下,

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值