使用后退一步获得两个相连的顶点 [英] Using a back step to get two connected vertexes
本文介绍了使用后退一步获得两个相连的顶点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果我有3个顶点A、B、C,其中B有一条边到A和C,我如何才能获得A和C的值
g.V("b").out("toC").as("c").out("toA").as("a").select("c", "a").next()
这就是我所拥有的,但它会导致错误,因为我认为您无法从C转到A,因为它们没有连接。我需要先返回B的方法,但我没有看到后退。
推荐答案
使用此图表
gremlin> g.addV('A').as('a').
......1> addV('B').as('b').
......2> addV('C').as('c').
......3> addE('toA').from('b').to('a').
......4> addE('toC').from('b').to('c')
==>e[42783][42780-toC->42781]
您可以使用
查找连接到B
的折点
gremlin> g.V().hasLabel('B').out().elementMap()
==>[id:42774,label:A]
==>[id:42776,label:C]
如果B中有很多边,而您只想要特定的边,您也可以使用特定的边标签进行过滤:
gremlin> g.V().hasLabel('B').out('toA','toC').elementMap()
==>[id:42774,label:A]
==>[id:42776,label:C]
如果您确实需要编写查询以使其以您在问题中所示的方式工作,则这是一种方法:
gremlin> g.V().hasLabel('B').as('b').
......1> out('toA').as('a').
......2> select('b').
......3> out('toC').as('c').
......4> select('a','c').
......5> by(elementMap())
==>[a:[id:42779,label:A],c:[id:42781,label:C]]
这篇关于使用后退一步获得两个相连的顶点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文