2017-06-28 2 views
0

Wie kann ich den kürzesten Pfad finden Länge in OrientDB? Es gibt viele Beispiele, wie man den kürzesten Pfad findet, aber es muss eine Möglichkeit geben, nur die Länge dieses Pfades zu erhalten.Finden Sie die kürzeste Pfadlänge in OrientDB

Anstatt also eine Liste von Scheitelpunkten like with this query

SELECT expand(path) FROM (

    SELECT shortestPath($from, $to) AS path 

    LET 

    $from = (SELECT FROM Profiles WHERE Name='Santo' and Surname='OrientDB'), 

    $to = (SELECT FROM Countries WHERE Name='United States') 

    UNWIND path 

) 

Ich möchte nur eine einzige Zahl als Ergebnis.

Ich verwende Java, um die DB abzufragen, also ist eine Java API Funktion auch OK.

+0

Können Sie nicht die Länge der Liste bekommen? Wenn mit den Kanten kein Gewicht verbunden ist, wird die Länge n - 1 sein. A-> b-> c – efekctive

Antwort

1

Try this:

SELECT sum(path.size()) FROM (

    SELECT shortestPath($from, $to) AS path 

    LET 

    $from = (SELECT FROM Profiles WHERE Name='Santo' and Surname='OrientDB'), 

    $to = (SELECT FROM Countries WHERE Name='United States') 

    UNWIND path 

) 

Hoffe, es hilft.

Grüße

Verwandte Themen