如何按节点或节点标签对路径进行分组

时间:2014-09-15 22:36:19

标签: neo4j cypher

给出一个密码查询,如下所示:

match a = (bs:BodyStructure {Name:"Brain structure"})<-[fs:Finding_site]-(dis:Disorder)-[r:Causative_agent]->(p) return a

如何修改它以返回每个p的路径数,或p的每个标签的路径数?

(在此示例中,p可以标记为SubstanceOrganism。)

1 个答案:

答案 0 :(得分:1)

查找每个p节点的路径数:

MATCH (:BodyStructure {Name:"Brain structure"})<-[:Finding_site]-(:Disorder)-[:Causative_agent]->(p)
RETURN p, COUNT(*)

要查找每个p标签的路径数(我假设p个节点最多只能有一个标签):

MATCH (:BodyStructure {Name:"Brain structure"})<-[:Finding_site]-(:Disorder)-[:Causative_agent]->(p)
RETURN labels(p)[0] AS label, COUNT(*)

在上面的RETURN语句中,COUNT(*)只是计算具有给定聚合键(plabel)的匹配行数。 < / p>