1

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

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;

这是图表:

在此处输入图像描述

4

1 回答 1

4

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

对于第一个查询,只有一个路径“Regular Users”->“All Principals”->“root”与查询匹配,然后返回为r的路径有一个关系集合,所以count(r)是 1。

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

于 2013-09-19T13:35:54.757 回答