Gremlin 如何从遍历中使用的顶点收集值?
我想要一个顶点的细节以及连接到它的顶点的细节 我有一个组顶点,传入“成员”边到用户顶点。我想要顶点的细节Gremlin 如何从遍历中使用的顶点收集值?,gremlin,Gremlin,我想要一个顶点的细节以及连接到它的顶点的细节 我有一个组顶点,传入“成员”边到用户顶点。我想要顶点的细节 g.V(1)。as('a')。在('member').valueMap().as('b')。选择('a','b').unfold().dedup() 理想情况下,我想要的是: {label:'group',id=1,name='A group',users=[{id=2,label=“user”,name=“…”},…}]} 当我尝试一个项目时,它不喜欢我使用“in” gremlin>g.V
g.V(1)。as('a')。在('member').valueMap().as('b')。选择('a','b').unfold().dedup()
理想情况下,我想要的是:
{label:'group',id=1,name='A group',users=[{id=2,label=“user”,name=“…”},…}]}
当我尝试一个项目时,它不喜欢我使用“in”
gremlin>g.V('1').project('name','users').by('name').by(in('member').select())
groovysh_parse:1:意外标记:在@1行第83列。
“name”、“users”).by('name').by(in('member
因为in
是Groovy中的保留关键字,所以必须使用详细语法\uuuu.in
尝试:
要获得首选的输出格式,您必须将组的valueMap()
与用户列表结合起来。在TinkerPop的modern toy graph上,您可以执行以下操作:
gremlin> g.V(3).union(valueMap(true).
by(unfold()),
project('users').
by(__.in('created').
valueMap(true).
by(unfold()).
fold())).
unfold().
group().
by(keys).
by(select(values))
==>[name:lop,id:3,lang:java,label:software,users:[[id:1,label:person,name:marko,...],...]]
将其映射到图形应该非常简单,基本上只是更改标签。看起来很有趣,我将尝试一下该查询,谢谢
g.V('1').project('name','users').by('name').by(__.in('member').valueMap(true).fold())
gremlin> g.V(3).union(valueMap(true).
by(unfold()),
project('users').
by(__.in('created').
valueMap(true).
by(unfold()).
fold())).
unfold().
group().
by(keys).
by(select(values))
==>[name:lop,id:3,lang:java,label:software,users:[[id:1,label:person,name:marko,...],...]]