使用后退一步获得两个相连的顶点 [英] Using a back step to get two connected vertexes

查看:11
本文介绍了使用后退一步获得两个相连的顶点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我有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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆