一场比赛涉及多少个节点

时间:2019-03-27 19:23:27

标签: neo4j cypher

我怎么知道MATCH中涉及多少个节点和边?除了解释/个人资料匹配之外,还有其他方法吗?

3 个答案:

答案 0 :(得分:1)

如果您是指某个路径(例如可变长度路径)中匹配了多少个节点,则可以为此assign a path variable

MATCH p = (k:Person {name:'Keanu Reeves'})-[*..8]-(t:Person {name:'Tom Hanks'})
WITH p LIMIT 1
RETURN p, length(p) as pathLength, length(p) + 1 as numberOfNodesInPath

您还可以使用nodes(p)relationships(p)获取组成路径的节点和关系的集合,还可以在这些集合上使用size()来获取它们的大小。 / p>

答案 1 :(得分:0)

存在Cypher的COUNT()函数,可让您计算元素的数量。例如,在此查询中:

MATCH (n)
RETURN COUNT(n);

此查询将计算数据库中的所有节点。

您可以在密码手册的汇总功能下找到更多信息。 Check it out.

答案 2 :(得分:0)

以下Cypher片段应返回通过任何给定的MATCH子句找到的不同节点和关系的数量。只需将<your code here>替换为您的MATCH模式即可。

MATCH <your code here>
WITH COLLECT(NODES(p)) AS ns, SUM(SIZE(RELATIONSHIPS(p))) AS relCount
UNWIND ns AS nodeList
UNWIND nodeList AS node
RETURN COUNT(DISTINCT node) AS nodeCount, relCount;