Gremlin获取按关系类型分组的相关节点

时间:2012-11-17 19:09:52

标签: neo4j gremlin

这是我正在执行的代码:

g.v(452).outE('friend', 'like').outV()

返回52个节点...我想按边缘类型按类别形成它们,例如:

[{friend:[v2,v3,v4 ...]},{'like':[v5,v7,v9 ...]}]

1 个答案:

答案 0 :(得分:1)

出于示例目的,使用Gremlin终端的玩具图:

gremlin> g = TinkerGraphFactory.createTinkerGraph()
==>tinkergraph[vertices:6 edges:6]

我添加了一个名为'friends'的额外边缘,使数据更有趣(两个顶点之间会有多条边):

gremlin> g.addEdge(g.v(1), g.v(2), 'friends')
==>e[0][1-friends->2]
gremlin> g.v(1).outE('knows','created','friends')
==>e[7][1-knows->2]
==>e[8][1-knows->4]
==>e[9][1-created->3]
==>e[0][1-friends->2]

从那里你可以做类似的事情:

gremlin> g.v(1).outE('knows','created','friends').groupBy{it.label}{it.inV.next()}.cap
==>{knows=[v[2], v[4]], friends=[v[2]], created=[v[3]]}