Gremlin-Groovy语法

时间:2016-11-16 20:58:05

标签: groovy amazon-dynamodb titan gremlin

我正在使用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"
 }

我还希望能够计算此查询生成的以下每个项的以下数量。是否可以在一个查询中执行此操作?

1 个答案:

答案 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"以下是关键,值代表他们各自遵循的人数。

相关问题