我正在寻找有关其如何工作的解释以及为什么不返回路径中的节点数。假设我匹配路径p。现在:
WITH p, count(nodes(p)) AS L1 RETURN L1
返回1.
如果清楚,我该如何正确计算路径节点?
答案 0 :(得分:6)
count()
是汇总功能。使用任何聚合函数时,结果行将按RETURN子句中包含的内容和不聚合函数进行分组。在这种情况下,结果行将按p
分组,返回值将为count(nodes(p))。
nodes(p)
会返回数组的节点,因此count(nodes(p))
将返回数组的数量,并始终等于1
。
为了返回路径中的节点数量,您应该使用size(nodes(p))
。
如果您只对路径的长度感兴趣而不是特别对其中包含的节点感兴趣,我会鼓励您使用length(p)
。这将返回给定路径的rels长度,而不必操纵/访问节点。