2017-05-02 6 views
-3

Supposons que je ce modèle dans Neo4j:Neo4j Cypher pour tous les enfants de noeud

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

je besoin de deux monogrammes, 1- toutes les propriétés des noeuds avec le nombre d'enfants immédiats Triés par, quelque chose comme ceci:

node count 
n1  3 
n5  2 
n2  1 
n3  1 
n4  1 
n6  0 
n7  0 
n8  0 
n9  0 

2- tous les nœuds avec tous leurs enfants et petits-enfants triés par quelque chose comme ceci:

node count 
    n1  8 
    n2  2 
    n5  2 
    n3  1 
    n4  1 
    n6  0 
    n7  0 
    n8  0 
    n9  0 
+0

Pourquoi les votes? –

Répondre

2

Si vous souhaitez récupérer uniquement le nombre d'enfants.

MATCH (n:Node) 
RETURN n,size((n)-[:CHILD]->()) as count order by count desc 

Si vous souhaitez obtenir le nombre d'enfants et de petits-enfants.

MATCH (n:Node) 
RETURN n,size((n)-[:CHILD*1..2]->()) as count order by count desc 

Vous pouvez également récupérer le nombre de petits-enfants.

MATCH (n:Node) 
RETURN n,size((n)-[:CHILD*2..2]->()) as count order by count desc