0
g.V().has('name', 'alice').both().both().cyclicPath().path().by('name')

为什么我们需要 2 个 both() 来获取 cyclicPath()?

4

1 回答 1

3

关于您要问的内容尚不完全清楚,但您的遍历只是转换为:

g.V().has('name', 'alice'). // (1)
  both().                   // (2)
  both().                   // (3)
  cyclicPath().             // (4)
  path().by('name')         // (5)
  1. 找到“爱丽丝”的“名字”的顶点
  2. 从传入和传出边上的“alice”遍历到相邻顶点
  3. 对于所有这些顶点,在传入和传出边上再次遍历到相邻顶点。值得注意的是,其中一些路径将回到“爱丽丝”
  4. 检查遍历器在到达这一步时所采用的路径,并过滤掉任何不返回其起点的路径(即不返回“alice”)。此步骤的替代方法是simplePath()过滤掉循环的路径(即返回开始)。
  5. 显示跟随的路径并将“名称”属性提取到路径中每个顶点的路径中。
于 2017-12-06T12:03:55.457 回答