2017-05-14 3 views
0

Supposons que je ce modèle dans Neo4j:liste Neo4j tous les nœuds avec ses propriétés parent

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

Tous les noeuds ont firstname et lastname propriétés. Y at-il un chiffrement pour lister tous les nœuds avec son parent firstname et lastname. Quelque chose comme ceci:

{ 
    { 
    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" 
    } 
    } 
} 

Répondre

1

Bien sûr, vous pouvez essayer cela, ceux-ci sont tous en supposant: N noeuds.

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

Cette carte utilise la projection pour chaque nœud n pour afficher ses propriétés, ainsi que les propriétés du nœud parent, si elle existe. Si vous avez seulement besoin des propriétés firstname et lastname, vous pouvez les lister explicitement dans la projection cartographique comme suit:

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