Können Sie mir helfen, cypher Abfrage zu erstellen? ich habe folgende Diagramm db Struktur:neo4j Cypher hierarchische Baum Build-Antwort auf JSON
(parent:Category)-[:subcategory]->(child:Category)
Mit diesen Graph Daten i hierarchischen Baum mit tiefer Ebene.
fand ich folgenden Code auf Stackoverfllow.com und geändert für meine Daten:
MATCH (root:Category)-[:subcategory]->(parent:Category)-[:subcategory]->(child:Category)
WITH root, {category: parent, children: collect(child)} AS parent_with_children
WHERE NOT(()-[:subcategory]->(root))
RETURN {category: root, children: collect(parent_with_children)}
Aber er ist die Antwort für die Tiefe mit 3 Ebenen des Baumes nur bauen. Ich brauche größer. Ich versuche json Reaktion wie in diesem Beispiel zu bauen:
[
category: {
name: "PC"
children: {
category: {
name: "Parts"
children: {
category: {
name: "CPU"
...
}
}
},
category: {
name: "Accessories"
...
}
}
},
category: {
name: "Laptop"
...
}
]
Die Cypher rekursive Aufrufe machen? Ich denke, das wird besser.
Danke.
P.S. Ich weiß, dass es ähnliche Fragen zu SO gibt, aber sie haben mir nicht geholfen.
Ja, Cypher tut nicht wirklich Rekursion. Wenn Sie einen Baum von Daten zurückgeben, ist Ihre beste Wette, mit dem zu gehen, was cybersam unten vorschlägt oder die Knoten/Beziehungen als eine Tabelle zurückbringt und sie im Gedächtnis aufbaut. –