zurückzugeben Ich verwende derzeit die Beispieldaten auf console.neo4j.org, um eine Abfrage zu schreiben, die hierarchische JSON ausgibt.Verwenden von Cypher, um geschachtelte, hierarchische JSON von einem Baum
Das Beispiel Daten mit
create (Neo:Crew {name:'Neo'}), (Morpheus:Crew {name: 'Morpheus'}), (Trinity:Crew {name: 'Trinity'}), (Cypher:Crew:Matrix {name: 'Cypher'}), (Smith:Matrix {name: 'Agent Smith'}), (Architect:Matrix {name:'The Architect'}),
(Neo)-[:KNOWS]->(Morpheus), (Neo)-[:LOVES]->(Trinity), (Morpheus)-[:KNOWS]->(Trinity),
(Morpheus)-[:KNOWS]->(Cypher), (Cypher)-[:KNOWS]->(Smith), (Smith)-[:CODED_BY]->(Architect)
Der ideale Ausgangs erstellt wird, wird wie folgt
name:"Neo"
children: [
{
name: "Morpheus",
children: [
{name: "Trinity", children: []}
{name: "Cypher", children: [
{name: "Agent Smith", children: []}
]}
]
}
]
}
Gerade jetzt, ich bin die folgende Abfrage mit
MATCH p =(:Crew { name: "Neo" })-[q:KNOWS*0..]-m
RETURN extract(n IN nodes(p)| n)
und diese bekommen
[(0:Crew {name:"Neo"})]
[(0:Crew {name:"Neo"}), (1:Crew {name:"Morpheus"})]
[(0:Crew {name:"Neo"}), (1:Crew {name:"Morpheus"}), (2:Crew {name:"Trinity"})]
[(0:Crew {name:"Neo"}), (1:Crew {name:"Morpheus"}), (3:Crew:Matrix {name:"Cypher"})]
[(0:Crew {name:"Neo"}), (1:Crew {name:"Morpheus"}), (3:Crew:Matrix {name:"Cypher"}), (4:Matrix {name:"Agent Smith"})]
Irgendwelche Tipps, um das herauszufinden? Danke
[Die APOC Repo] (https://github.com/neo4j-contrib/neo4j-apoc-procedures) gibt die Geschichte des Namens an. – cybersam
Ja. Ich bezog mich auf die Tatsache, dass die Probe in dieser Frage ebenfalls aus der Matrix stammt. – flq
Dies ist bei weitem die mächtigste Funktion (gut für mich zumindest) des APOC-Plugin, und sehr einfach in Docker mit Neo4j Bild zu bringen (siehe Dokumentation), wenn Sie docker-komponieren verwenden, verwenden Sie Volumes: -:/plugins, "build" und dann "up". Danke für das Teilen dieses @ cybersam, hat mein Leben und Freizeit verändert! –