Я пытаюсь вычислить кратчайший путь между двумя узлами, но с учетом значения длины, хранящегося в атрибуте некоторых узлов.суммировать атрибут узла по всем путям в neo4j
match (origin:type1 {t1id:"start"}),
(dest:type2 {t2id:"end"}),
path= (origin)<-[:JOINS]-()-[:JOINS*..10]-()<-[:PARKING]-(dest)
with extract(n in NODES(path) | n._length) as x
return x
Есть три типа узлов и путь следующим образом:
(type1)-[:JOINS]-(type2)-[:JOINS]-(type1)-[:JOINS]-(type2)-...<-[:PARK]-(type3)
Запрос выше дает список путей (ниже), но я не могу найти способ суммировать значения вдоль путь, чтобы дать общую длину каждого отдельного пути. Нулевые значения относятся к узлам типа 2, которые не имеют значения длины.
x
[8.06, null, 34.25, null, 46.52, null, 37.38, null, 44.2, null]
[8.06, null, 34.25, null, 32.41, null, 31.3, null, 19, null, 44.2, null]
[8.06, null, 34.25, null, 14.63, null, 44.2, null]
[8.06, null, 32.41, null, 46.52, null, 37.38, null, 44.2, null]
[8.06, null, 32.41, null, 34.25, null, 31.3, null, 19, null, 44.2, null]
[8.06, null, 32.41, null, 14.63, null, 44.2, null]
[8.06, null, 31.3, null, 35.86, null, 57.93, null, 55.35, null, 44.2, null]
[8.06, null, 31.3, null, 19, null, 44.2, null]
Когда я использую раскручивать это только предоставляет список всех длин и не отделены друг от пути (ниже)
y
8.06
null
34.25
null
46.52
null
37.38
null
44.2
null
8.06
null
34.25
null
...etc
Любая помощь или советы будут очень высокую оценку.
ах отлично спасибо, работает отлично! – SAB