带有 group 子句的 gremlin 的节点横向

Node Transversal with gremlin with group clause

任何人都可以使用 gremlin 帮助处理横向图形吗?我已经连接了图形数据,我需要查询用户联系关系 'KNOWS' 及其传出连接顶点属性。

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')

需要什么-从用户节点导航获取所有与关系 'KNOWS' 的传出连接,并为每个连接获取他的行业和技能 输出应该是user

的遍历结果

用户1---行业1,技能1 user2--行业1,行业2 user3——行业3,技能1 user4--skills1,skills2

我想这就是你想要的输出:

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]]]