在本教程中
http://tinkerpop.apache.org/docs/current/tutorials/getting-started/
gremlin> g.V().as('a').out().as('b').out().as('c').
select('a','b','c')
==>[a:v[1],b:v[4],c:v[5]]
==>[a:v[1],b:v[4],c:v[3]]
我不明白g.V().as('a')
是什么意思,它是将所有顶点都限定为“ a”,还是迭代每个顶点并为每次迭代调用一个顶点“ a”?
这是图
答案 0 :(得分:1)
那是一个步骤标签。这意味着V()
被命名为“ a”,第一个out()
被命名为“ b”,第二个out()
被命名为“ c”。步骤标签使您可以访问该步骤当前的遍历器(在本例中为select()
)。
因此,在遍历的第一次迭代中,您首先找到v[1]
。格雷姆林从那里经过out()
,然后到达v[4]
。他从那里横穿out()
,然后到达v[5]
。因此,v[5]
是输出:
gremlin> g.V().as('a').out().as('b').out().as('c').next()
==>v[5]
但是,如果您想知道第一次迭代V()
的内容,您可以参考我们看到的步骤是v[1]
:
gremlin> g.V().as('a').out().as('b').out().as('c').select('a').next()
==>v[1]
或者,如果我们想查看示例中所做的每一步:
gremlin> g.V().as('a').out().as('b').out().as('c').select('a','b','c').next()
==>a=v[1]
==>b=v[4]
==>c=v[5]
基本上类似于:
gremlin> g.V().out().out().path().next()
==>v[1]
==>v[4]
==>v[5]