Neo4j cypher适用于所有节点儿童

时间:2017-05-02 07:45:16

标签: neo4j cypher graph-databases

假设我在neo4j中有这个模型:

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

我需要两个密码,  1-所有节点属性,按计数排序的直接子节点数,如下所示:

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

2-所有节点及其所有子节点和孙子节点按计数排序,如下所示:

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

1 个答案:

答案 0 :(得分:2)

如果你想只得到孩子的数量。

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

如果你想得到孩子和孙子的数量。

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

你也可以回到只有孙子的计数。

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