我怎么知道MATCH中涉及多少个节点和边?除了解释/个人资料匹配之外,还有其他方法吗?
答案 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;