Neo4j 2.0 - 来自密码查询的求和关系结果

Dea*_*own 2 neo4j cypher

Neo4j的新手.

我有一些节点通过具有"权重"属性和数字的关系连接.我试图获得查询中返回的所有关系的平均权重属性.

这是我正在尝试的查询:

MATCH (x)-[r*1..6]-prod:Product 
WHERE x.name = 'ddbrown::default' 
RETURN sum(r.weight);
Run Code Online (Sandbox Code Playgroud)

我得到以下异常

CypherTypeException: Expected `r` to be a Map but it was a Collection<relationship>
Run Code Online (Sandbox Code Playgroud)

我显然错误地解释了作为r返回的内容,但我不确定如何获得指向每个关系的命名指针.

谢谢你的帮助!院长

Tho*_*nzl 5

Sum可用于聚合多个匹配的返回值.您需要做的是计算r匹配路径的多个部分的值.要计算集合上的值,可以使用reduce

match x -[r*1..6]-prod:Product
WHERE x.name = 'ddbrown::default' 
return x, reduce(acc=0, n in r: acc + n.weight)/length(r)
Run Code Online (Sandbox Code Playgroud)

在不同的切线上,您将在查询中的两个方向上匹配所有可能的关系类型和关系.您可能希望将其限制为特殊和定向关系类型.