接下来讲的是AQL tutorial比较有深度的一节:图的遍历。文档里指导建了一个EDGE类型的ChildOf来表示Charaters的关系。
看一下ChildOf里面的数据,跟之前的不同之处在于多了_from和_to两个属性,而且值是跟Charaters的_id属性对应的。
FOR v IN 1..1 OUTBOUND "Characters/1741" ChildOf
RETURN v.name
看一下这个语法的英文说明并解释一下:
这个for循环并不是遍历一个collection或者数组,它走过图,遍历它所找到的所有连接的点,同时把点赋值给变量v,另外还有另外两个变量表示 走过的边和完整的路径。上面的查询,遍历限制了最小和最大深度(也就是从开始节点算起需要的步数),同时只查询OUTBOUND方向。边的方向是从child指向parent,同时parent离child只有一步远,因此上诉语法查的是起点的Parent节点,Characters/1741就是起点。
1..1表示是第一层到第一层,1..2表示第一层到第二层,以此类推;
Outbound查的是父节点,同时还有inbound查的是子节点,关于这两个关键词的理解其实还是有点容易让人误解的。
例如文档里有这么一个例子: