count(nodes(p))如何在Cypher,Neo4j中工作

时间:2015-03-19 09:54:03

标签: neo4j cypher

我正在寻找有关其如何工作的解释以及为什么不返回路径中的节点数。假设我匹配路径p。现在:

WITH p, count(nodes(p)) AS L1 RETURN L1

返回1.

如果清楚,我该如何正确计算路径节点?

1 个答案:

答案 0 :(得分:6)

count()汇总功能。使用任何聚合函数时,结果行将按RETURN子句中包含的内容和聚合函数进行分组。在这种情况下,结果行将按p分组,返回值将为count(nodes(p))。

nodes(p)会返回数组的节点,因此count(nodes(p))将返回数组的数量,并始终等于1

为了返回路径中的节点数量,您应该使用size(nodes(p))

如果您只对路径的长度感兴趣而不是特别对其中包含的节点感兴趣,我会鼓励您使用length(p) 。这将返回给定路径的rels长度,而不必操纵/访问节点。