我想要一个顶点的细节以及与之相连的顶点的细节。
我有一个组顶点,用户顶点有传入的“成员”边。我想要顶点的细节。
g.V(1).as('a').in('member').valueMap().as('b').select('a','b').unfold().dedup()
==>a=v[1]
==>b={image=[images/profile/friend9.jpg], name=[Thomas Thompson], email=[me@thomasthompson.co.uk]}
==>b={image=[images/profile/friend13.jpg], name=[Laura Tostevin], email=[me@lauratostevin.co.uk]}
==>b={image=[images/profile/friend5.jpg], name=[Alan Thompson], email=[me@alanthompson.co.uk]}
==>b={image=[images/profile/friend10.jpg], name=[Laura Bourne], email=[me@laurabourne.co.uk]}
理想情况是:
{label: 'group', id=1, name='A Group', users=[{id=2, label="user",name=".."}, ... }]}
当我尝试使用project
时,我不喜欢使用'in'
gremlin> g.V('1').project('name','users').by('name').by(in('member').select())
groovysh_parse: 1: unexpected token: in @ line 1, column 83.
'name','users').by('name').by(in('member
答案 0 :(得分:1)
由于in
是Groovy中的保留关键字,因此必须使用详细语法__.in
尝试:
g.V('1').project('name','users').by('name').by(__.in('member').valueMap(true).fold())
答案 1 :(得分:1)
要获取首选的输出格式,必须将组的valueMap()
与用户列表一起加入。在TinkerPop的现代玩具图中,您将执行以下操作:
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,...],...]]
将其映射到图形应该很简单,基本上就是更改标签。