为什么这个Cypher查询只返回一个关系

时间:2013-09-19 12:53:37

标签: neo4j cypher

为什么此查询会返回一个结果?

START n=node:node_auto_index(Name = 'Regular Users')  
MATCH (n)-[r:IS_MEMBER_OF_GROUP*]->(v)  
WHERE v.Name = 'root'  
RETURN count(r) AS CountAllRelationships;

为什么这个查询返回两个结果?我删除的所有内容都是(v)Where v.Name = Root

START n=node:node_auto_index(Name = 'Regular Users')  
MATCH (n)-[r:IS_MEMBER_OF_GROUP*]->() 
RETURN count(r) AS CountAllRelationships;

这是图表:

enter image description here

1 个答案:

答案 0 :(得分:4)

标识符“r”表示匹配路径上的关系集合。

对于第一个查询,只有一个路径“常规用户” - >“所有主体” - >“root”匹配查询,然后有一个关系集合作为r返回的路径,所以计数(r)是1.

对于第二个查询,有两个与查询匹配的路径,一个是“常规用户” - >“所有主体”,另一个是“常规用户” - >“所有主体” - >“root”因此,返回了两个关系集合,这就是count(r)的结果为2的原因。