繁体   English   中英

想要 Gremlin 中同一边的两个顶点

[英]Want two Vertices off the same Edge in Gremlin

我有一个这样的图表

V('Producer')-E('RESPONSIBLE_PRODUCER)->V('Event')<-E('INSPECTED')-V('Engineer')
V('Event')<-E('ALIGNED_PRODUCER')-V('Producer')

也就是说,每个“事件”顶点都有两条传入边:一条终止于“工程师”顶点,另一条终止于“生产者”顶点。 但是 Producer 顶点的功能因边标签而异。

我想获得原始生产者、事件、工程师和终止生产者。

我有这个小鬼代码:

g.V().hasLabel('Producer').
as('responsible').
has('ProdId', 1234567).
out("RESPONSIBLE_PRODUCER").hasLabel('Event').as('event').
in("INSPECTED").hasLabel('Engineer').as('engineer').
select('responsible', 'event', 'engineer').
by(valueMap('name')).by(valueMap('name')).by(valueMap('name'))

也就是说,我选择了一个给定的 Producer 并获取 Event 和 Engineer,然后返回有关每个顶点的一些详细信息。

我还希望 Producer 与同一查询中的 Event 对齐,但不确定如何执行此操作。

任何帮助是极大的赞赏。

您正在寻找project

g.V().has('Producer', 'ProdId', '1').as('r').
out("RESPONSIBLE_PRODUCER").hasLabel('Event').
project('responsible', 'event', 'engineer', 'aligned').
by(select('r').values('name')).
by(values('name')).
by(in('INSPECTED').values('name')).
by(in('ALIGNED_PRODUCER').values('name'))

您可以在此处查看问题的“实时”示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM