/ / Uzyskaj długości ścieżek dla każdej relacji neo4j - graph, neo4j, cypher, graph-database

Uzyskaj długości ścieżek dla każdego związku neo4j - wykres, neo4j, cypher, graf-bazy danych

Mam więc wykres, który wygląda tak (od początkuod prawej strony) z relacjami, które mają unikalny atrybut liczby o nazwie Isnad. Chcę napisać zapytanie, aby uzyskać długość każdego Isnada od węzła początkowego do węzła końcowego, ale nie mogę tego rozgryźć. Nie wiem, jak przejść każdą ścieżkę dla każdego Isnada osobno. Jakaś pomoc?

Wykres

Odpowiedzi:

2 dla odpowiedzi № 1

Nie wiem, czy jest to najbardziej eleganckie i rozwiązanie, ale myślę, że to działa. Po pierwsze, robię się wyjątkowy Isnad wartości relacji wychodzących z prawego skrajnego węzła za pomocą identyfikatora. Następnie używam dopasowanie wzoru o zmiennej długości gdzie wszystkie relacje mają tę samą wartość Isnad własność. A później Isnad zwracana jest wartość i długość ścieżki.

match ({id:"unique-identifier-of-rightmost-side-node"})-[r]->()
with distinct r.Isnad as Isnad
match p = ()-[*{Isnad : Isnad}]->()
return Isnad, length(p) as Length