首页 文章

Neo4j cypher适用于所有节点儿童

提问于
浏览
-3

假设我在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 回答

  • 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
    

相关问题