用一个gremlin查询来计数州和城市

时间:2018-06-19 21:10:47

标签: graph-databases gremlin tinkerpop3

我在 thinkerpop 3 支持下使用 orientDb ,数据如下:

一个国家有多个州,而这个州有多个城市(在我的示例中,一个例外是并非每个州都有城市)。

我想在一个gremlin查询中计算一个特定州的州和城市。

 ArrayList list = new ArrayList();

 g.V().has("key", GERMANY_KEY)
.repeat(__.in())
.until(__.hasLabel("state"))
.as("states")
.repeat(__.in())
.until(__.hasLabel("city"))
.as("cities")
.select("states", "cities")
.fill(list);

这就是我要做的,但是在此之后,我不知道我可以将它们加在一起。

一个可能的答案可能是

德国有16个州和1000个城市。

这是可能的还是我需要进行两次查询?

非常感谢。

1 个答案:

答案 0 :(得分:0)

我找到了解决方法:

g.V().has("key", GERMAN_KEY)

                .repeat(__.in()).emit() 

                .groupCount().by(__.label())

                .forEachRemaining(e -> logger.info("Data: {}", e));