Подсчет штатов и городов одним запросом гремлина

Я использую orientDb с поддержкой thinkerpop 3, и данные выглядят следующим образом:

В одной стране есть несколько штатов, а в этом штате несколько городов (одно исключение для моего примера - не в каждом штате есть города).

Я хотел бы подсчитать штаты и города для одного конкретного штата в одном запросе гремлина.

 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 городов.

Возможно ли это, или мне нужно сделать два запроса?

Большое спасибо.


person Marcel Alburg    schedule 19.06.2018    source источник


Ответы (1)


Я нашел решение:

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

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

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

                .forEachRemaining(e -> logger.info("Data: {}", e));
person Marcel Alburg    schedule 20.06.2018