在neo4j中使用MATCH过滤时如何获得节点的度数

时间:2015-09-25 05:29:52

标签: neo4j cypher

我有一个4级图表。使用MATCH进行过滤时,如何获得节点的“度”?我总是获得1的“学位”。

这是我的问题:

MATCH (k)-[r*]->(n:ABC)
WITH k,r,n,count(k) as degree
WHERE k.Value='30 ' AND degree > 1
RETURN n,r,k,degree;

2 个答案:

答案 0 :(得分:8)

您的计数为1,因为您聚合了路径中的所有3个,起始节点,终端节点和所有关系。

这是最有效的方式。

MATCH (k)
WITH k, size((k)-[:TYPE]->()) as degree
WHERE k.Value='30 ' AND degree > 1
MATCH (k)-[r:TYPE]->(n:ABC)
RETURN n,r,k,degree;

答案 1 :(得分:1)

更多信息会有所帮助,但一般来说,你可以通过以下方式获得节点的程度:

MATCH (n)--(other)
WHERE n.id = {id}
RETURN count(other)

如果要查找许多节点的度数,可以省略WHERE或指定更通用的查询:

MATCH (n)--(other)
WHERE n.property = {value}
RETURN n, count(other)