2016-12-05 32 views
1

在Tinkerpop3中valueMap返回一个数组,我怎样才能得到一个真正的键值对(无数组)?Valuemap返回数组

gremlin> Gremlin.version() 
==>3.0.1-incubating 

:> def trav = g.V().hasLabel('Group'); trav.valueMap() 
==>{joinTime=[2016-12-05T22:27:01.088Z], groupId=[9de5-45cf-b40d-e357b40e87b1], mCanInvite=[true]} 

:> def trav = g.V().hasLabel('Group'); trav.local(properties().group().by(key()).by(value())) 
==>{joinTime={2016-12-05T22:27:01.088Z=1}, groupId={9de5-45cf-b40d-e357b40e87b1=1}, mCanInvite={true=1} 

回答

0

您可以尝试使用select,它返回键值对。 例如:

g.V().hasLabel('Group').as('name','count') 
    .select('name','count') 
    .by('groupName') 
    .by(outE('contains').count()) 

结果会是这样的:

[{'name':'group1', 'count':10},...] 

名代表组名的属性值,算 - 多出边怎么了组。

+0

这是一个合理的回退,但是当某些属性是可选的时它不能正常工作。例如,如果一个特定的顶点没有一个名为groupName的属性('groupName'),我认为会失败。 – Vibgy