Узел Трансверсал с гремлином с групповым предложением - PullRequest
1 голос
/ 10 мая 2019

Может ли кто-нибудь помочь с поперечным графом, используя gremlin. Я подключил данные графа, где мне нужно запросить контакт пользователя с отношением «ЗНАЕТ» и его свойствами вершин исходящего соединения.

g.addV().property(id, 'user').as('user').
addV().property(id, 'user1').as('user1').
addV().property(id, 'user2').as('user2').
addV().property(id, 'user3').as('user3').
addV().property(id, 'user4').as('user4').
addV().property(id, 'Industry1').as('Industry1').
addV().property(id, 'Industry2').as('Industry2').
addV().property(id, 'skills1').as('skills1').
addV().property(id, 'skills2').as('skills2').    
addE('KNOWS').from('user').to('user1').
addE('KNOWS').from('user').to('user2').
addE('KNOWS').from('user').to('user3').
addE('KNOWS').from('user').to('user4').
addE('WORKS').from('user1').to('Industry1').
addE('WORKS').from('user2').to('Industry1').
addE('WORKS').from('user2').to('Industry2').
addE('WORKS').from('user3').to('Industry2').
addE('SKILLEDIN').from('user3').to('skills1').
addE('SKILLEDIN').from('user4').to('skills1').
addE('SKILLEDIN').from('user4').to('skills2')

Что требуется - навигацияот узла пользователя получить все исходящие соединения с отношением «ЗНАЕТ» и для каждого соединения получить свою отрасль и навыки. Результат должен быть результатом обхода от пользователя

user1 --- Industry1, skill1 user2 - Industry1, Industry2 user3--Индустрия3, навыки1 пользователь4 - навыки1, навыки2

1 Ответ

0 голосов
/ 10 мая 2019

Я думаю, что это вывод, который вы хотите:

gremlin> g.V('user').out('KNOWS').
......1>   group().
......2>     by(id).
......3>     by(project('industries','skills').
......4>          by(out('WORKS').id().fold()).
......5>          by(out('SKILLEDIN').id().fold()))
==>[user1:[industries:[Industry1],skills:[]],user2:[industries:[Industry1,Industry2],skills:[]],user3:[industries:[Industry2],skills:[skills1]],user4:[industries:[],skills:[skills1,skills2]]]
...