2016-11-16 3 views
2

Я использую Gremlin-Groovy для запроса базы данных графства AWS (Titan on DynamoDB). Я могу запросить исходящую последующие отношения человека с помощью следующего запроса:Синтаксис 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, где человек вершины, что «» следует ключи и значения представляют собой подсчет тех людей, что они следуют за ними.

Смежные вопросы