Позвольте мне объяснить это с помощью city example graph Вершины (города) имеют числовой атрибут, population
; Края (шоссе) имеют числовой атрибут distance
.
Проверка, что мы ожидаем sumarize:
FOR v, e IN 1..1 INBOUND "frenchCity/Lyon" GRAPH "routeplanner"
RETURN {city: v, highway: e}
Подытоживая население всех пройденных городов легко:
RETURN SUM(FOR v IN 1..1 INBOUND "frenchCity/Lyon" GRAPH "routeplanner"
RETURN v.population)
При этом используется подзапрос, а это значит, все значения возвращаются, и затем на них выполняется операция SUM
.
Его лучше использовать COLLECT AGGREGATE
, чтобы суммировать атрибуты во время обхода.
Таким образом, хотя в контексте населения городов и их расстояния не может иметь смысл sumerize эти цифры, позволяет сделать это в любом случае:
FOR v, e IN 1..1 INBOUND "frenchCity/Lyon" GRAPH "routeplanner"
COLLECT AGGREGATE populationSum = SUM(v.population), distanceSum = SUM(e.distance)
RETURN {population : populationSum, distances: distanceSum}
Большое спасибо еще раз за быстрый и полезный ответ! : D –