如何在Gremlin中追加子顶点的数量?

时间:2018-10-17 12:17:01

标签: graphql gremlin tinkerpop tinkerpop3 gremlin-server

这是我正在处理的图形。

g = TinkerGraph.open().traversal()
first_generation = g.addV('person').property('id', '1').next()
second_generation = g.addV('person').property('id', '2').next()
third_generation = g.addV('person').property('id', '3').next()
third_generation_1 = g.addV('person').property('id', '4').next()
fourth_generation = g.addV('person').property('id', '5').next()
g.addE('child').from(first_generation).to(second_generation)
g.addE('child').from(second_generation).to(third_generation)
g.addE('child').from(second_generation).to(third_generation_1)
g.addE('child').from(third_generation).to(fourth_generation)

在这里,我想获取所有有孩子的人数列表。

[{'id': 1, 'children': 1}, {'id': 2, 'children': 2}]

我了解了sideEffect,但似乎无法将sideEffect的结果附加到输出中。

关于如何实现所需输出的任何建议?

1 个答案:

答案 0 :(得分:2)

您可能应该使用project()

gremlin> g.V().hasLabel('person').
......1>   project('id','children').
......2>     by('id').
......3>     by(out('child').count())
==>[id:1,children:1]
==>[id:2,children:2]
==>[id:3,children:1]
==>[id:4,children:0]
==>[id:5,children:0]

它获取每个顶点并将其转换为指定键的Mapby()调制器然后指定这些键的值。