我在 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个城市。
这是可能的还是我需要进行两次查询?
非常感谢。
答案 0 :(得分:0)
我找到了解决方法:
g.V().has("key", GERMAN_KEY)
.repeat(__.in()).emit()
.groupCount().by(__.label())
.forEachRemaining(e -> logger.info("Data: {}", e));