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

Я использую 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 городов.

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

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

1 ответ

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

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

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

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

                .forEachRemaining(e -> logger.info("Data: {}", e));
Другие вопросы по тегам