我想要顶点的详细信息以及连接到该顶点的顶点的详细信息。
我有一个组顶点,传入“成员”边到用户顶点。我想要顶点的详细信息。
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=[<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="afc2caefdbc7c0c2cedcdbc7c0c2dfdcc0c181ccc081dac4" rel="noreferrer noopener nofollow">[email protected]</a>]}
==>b={image=[images/profile/friend13.jpg], name=[Laura Tostevin], email=[<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="82efe7c2eee3f7f0e3f6edf1f6e7f4ebecace1edacf7e9" rel="noreferrer noopener nofollow">[email protected]</a>]}
==>b={image=[images/profile/friend5.jpg], name=[Alan Thompson], email=[<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="432e2603222f222d372b2c2e33302c2d6d202c6d3628" rel="noreferrer noopener nofollow">[email protected]</a>]}
==>b={image=[images/profile/friend10.jpg], name=[Laura Bourne], email=[<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="ed8088ad818c989f8c8f82989f8388c38e82c39886" rel="noreferrer noopener nofollow">[email protected]</a>]}
理想情况下我想要的是:
{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
最佳答案
要获得您首选的输出格式,您必须将组的 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,...],...]]
将其映射到您的图表应该非常简单,基本上只是更改标签。
关于gremlin - 如何从遍历中使用的顶点收集值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56935152/