我有一个这样的图
V('Producer')-E('RESPONSIBLE_PRODUCER)->V('Event')<-E('INSPECTED')-V('Engineer')
V('Event')<-E('ALIGNED_PRODUCER')-V('Producer')
也就是说,每个“事件”顶点都有两个传入边:一个终止于“工程”顶点,另一个终止于“生产者”顶点。但是,生产者顶点的功能因边标签而异。
我想获得原始的生产者,事件,工程师和终止的生产者。
我有此gremlin代码:
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'))
也就是说,我选择了给定的生产者,并获得事件和工程师,然后返回有关每个顶点的一些详细信息。
我还希望生产者在同一查询中与事件对齐,但不确定如何执行此操作。
任何帮助是极大的赞赏。
您正在寻找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'))
您可以在此处看到问题的“实时”示例
是! 谢谢!也是很棒的工具。
显示堆栈跟踪?[yN] y org.codehaus.groovy.control.MultipleCompilationErrorsException:启动失败:groovysh_parse:1:意外的令牌:在@第1行,第213列。me'))。by(values('name'))。by(in('INSPECTED另一个讨厌海王星的原因....
不确定这是否是海王星的问题。但是,请尝试将__添加到in命令中。将'by(in(..)...'更改为'by(__。in(...)...'
Gremlin控制台基于Groovy控制台。Groovy控制台在将输入发送到服务器之前先对其进行解析。在Groovy中,它
in()
是一个保留字,因此当用作匿名遍历时(在右括号之后),它需要以double under-bar开头。您可以在TinkerPop文档中找到保留字的列表(数量很少)。