2017-07-10 2 views
0

Ich habe eine Abfrage durch Py2neo Neo4j v3 mit OGM:Py2neo V3 Pfad Abfrage Rückkehr unlesbar

output = graph.run ("MATCH (m: Spalte {name: 'Code'}), (n: Spalte {Name: 'locale_language_cd'}), p = shortestPath ((m) -. [rels: part_of *] - (n)) RETURN p ") auswerten()

Druck (Ausgabe)

dies richtig das tut, was ich es will, aber die Knoten sind nicht lesbar

(f0b4322) - [: part_of] -> (f86202d) < - [: part_of] - (a16fb7b) - [: part_of] -> (b35 62af) < - [: part_of] - (a7bfe43)

Wenn ich den Code erneut aus:

(b539883) - [: part_of] -> (c83d89b) < - [: part_of] - (f2adac1) - [: part_of] -> (fd469a6) < - [: part_of] - (e373bf4)

Hier ist ein Link zu dem, was sieht die Daten wie in Neo4j: Neo4j output with same search parameters

Jedes Mal, wenn ich den Code der Ausgänge laufen sind anders, ich möchte, dass die Ziffern durch die GraphObject-Namen (deren Primärschlüssel) ersetzt werden.

Antwort

0

Da Sie nur nach Knoten suchen, die name = code und name = 'locale_language_cd' entsprechen, stellen Sie sich vor, Sie wählen einen zufälligen Apfel aus einer wirklich großen Tüte Äpfel .. apple .. mmmm ...

Jedes Mal, wenn Sie ankommen, erhalten Sie einen anderen Apfel.
Gleiches mit dem Pfad. Du fragst nicht nach dem 'kürzesten Weg' oder so. Sie bitten die Datenbank effektiv, den ersten gefundenen Pfad zwischen & & m auszuwählen.

Wenn Sie mehr konsistente Ergebnisse, Suche nach dem Primärschlüssel auf beiden Knoten oder sortieren nach einem anderen Attribut und wählen Sie die ‚erste‘ zur Verfügung zu bekommen ..

die zweite Frage zu beantworten, anstatt das Ergebnis des Druckens set, das ein "Pfad" -Objekt ist, gebe stattdessen die Knoten zurück und drucke sie aus.

ODER verwenden Sie die integrierten Funktionen, um Ihre Ergebnisse zu iterieren.

so etwas wie:

for x in results: 
    p = x['p'] # This is the path 
    print p 

Um zu sehen, was für die Antwort

+0

Sie in p ist Danke, aber wie suche ich nach dem Primärschlüssel? Ich habe festgelegt, dass das Attribut __primarykey__ die Eigenschaft name ist. Sollte das nicht bedeuten, dass ich bereits nach dem Primärschlüssel suche? –

+0

ja! Sie suchen bereits nach der Eigenschaft name. (m: Spalte {name: 'code'}) ... aber du gibst p zurück ... wo p der Pfad ist. Vielleicht vermisse ich die Absicht deiner Frage. – chrisfauerbach