Хотите две вершины с одного края в Гремлин - PullRequest
0 голосов
/ 11 февраля 2020

у меня есть такой график , Но функции вершин источника различаются в зависимости от метки ребра.

Я хочу получить исходного источника, событие, инженера и завершающего производителя.

У меня есть этот код 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'))

То есть, я выбрал данного Производителя и получил Событие и Инженер, а затем вернул некоторые подробности о каждой из этих вершин.

Я также хочу, чтобы Производитель был выровнен по Событию в том же самом запрос, но я не уверен, как это сделать.

Любая помощь с благодарностью.

1 Ответ

5 голосов
/ 11 февраля 2020

Вы ищете 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'))

Вы можете увидеть «живой» пример вашей проблемы здесь

...