2016-11-16 51 views
2

我正在使用Gremlin-Groovy查询AWS托管的图形数据库(DynamoDB上的Titan)。我可以查询一个人的出后续的关系用下面的查询:Gremlin-Groovy语法

"gremlin": "g.V().has(p0,p1).out(p2)", 
"bindings": { 
    "p0": "PersonId", 
    "p1": "b72a0ff5-21ca-4c71-9c47-20bef36ac277", 
    "p2": "follow" 
} 

我也希望能够指望每此查询生成以下的以下的数量。是否有可能在一个查询中完成?

回答

2

这里有一种方法,你可以做到这一点:

gremlin> graph = TinkerGraph.open() 
==>tinkergraph[vertices:0 edges:0] 
gremlin> g = graph.traversal() 
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard] 
gremlin> g.addV(id,'a').as('a'). 
......1> addV(id,'b').as('b'). 
......2> addV(id,'c').as('c'). 
......3> addV(id,'d').as('d'). 
......4> addV(id,'e').as('e'). 
......5> addV(id,'f').as('f'). 
......6> addV(id,'g').as('g'). 
......7> addE('follows').from('a').to('b'). 
......8> addE('follows').from('b').to('c'). 
......9> addE('follows').from('b').to('d'). 
.....10> addE('follows').from('a').to('e'). 
.....11> addE('follows').from('a').to('f'). 
.....12> addE('follows').from('f').to('g').iterate() 
gremlin> g.V().has(id,'a').out('follows'). 
......1> group().by().by(out('follows').count()) 
==>[v[b]:2,v[e]:0,v[f]:1] 

你可以看到的最后一行,而该人顶点,“一个”跟随是键和值表示这些人的计数返回Map他们每个人都遵循。