2017-05-14 2 views
0

nehme ich dieses Modell in Neo4j haben:Neo4j Liste alle Knoten mit seinen Eltern Eigenschaften

  (n2) -> (n3)-> (n9) 
      /\ 
      | 
    (n4)<-(n1)->(n5)->(n6) 
    |   | 
    \/   \/ 
    (n7)   (n8) 

Alle Knoten haben firstname und lastname Eigenschaften. Gibt es eine Chiffre, um alle Knoten mit ihren Eltern firstname und lastname aufzulisten. Etwas wie folgt aus:

{ 
    { 
    firstname: "n1 name", 
    lastname: "n1 last name" 
    parent: {} 
    }, 
    { 
    firstname: "n2 name", 
    lastname: "n2 last name" 
    parent: { 
     firstname: "n1 name", 
     lastname: "n1 last name" 
    } 
    }, 
    { 
    firstname: "n3 name", 
    lastname: "n3 last name" 
    parent: { 
     firstname: "n2 name", 
     lastname: "n2 last name" 
    } 
    }, 
    . 
    . 
    . 
    { 
    firstname: "n9 name", 
    lastname: "n9 last name" 
    parent: { 
     firstname: "n3 name", 
     lastname: "n3 last name" 
    } 
    } 
} 

Antwort

1

Sicher, können Sie dies versuchen, werden diese unter der Annahme, alle: N Knoten.

MATCH (n:N) 
OPTIONAL MATCH (parent)-->(n) 
RETURN collect(n {.*, parent}) as nodes 

Diese verwendet Kartenprojektion für jedes n Knoten seine Eigenschaften zu zeigen, sowie die Eigenschaften des Elternknotens, wenn es vorhanden ist. Wenn Sie nur die Eigenschaften firstname und lastname benötigen, können Sie sie in der Kartenprojektion wie folgt explizit auflisten:

MATCH (n:N) 
OPTIONAL MATCH (parent)-->(n) 
RETURN collect(n {n.firstname, n.lastname, parent {parent.firstname, parent.lastname}}) as nodes 
Verwandte Themen