我正在使用Gremlin-Groovy来查询AWS托管图数据库(Titan on DynamoDB)。我可以使用以下查询查询人的传出关系:
"gremlin": "g.V().has(p0,p1).out(p2)",
"bindings": {
"p0": "PersonId",
"p1": "b72a0ff5-21ca-4c71-9c47-20bef36ac277",
"p2": "follow"
}
我还希望能够计算此查询生成的以下每个项的以下数量。是否可以在一个查询中执行此操作?
答案 0 :(得分: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
,其中人物顶点" a"以下是关键,值代表他们各自遵循的人数。