无法在密码中减少工作量

时间:2017-07-31 06:14:45

标签: neo4j cypher

在此Cypher查询中,我想在图表中对路径上的所有权重求和:

MATCH p=(n:person)-[r*2..3]->(m:person) 
WHERE n.name = 'alice' and m.name = 'bob'
WITH REDUCE(weights=0, rel IN r : weights + rel.weight) AS weight_sum, p
return n.name, m.name, weight_sum
LIMIT 10

在这个查询中,我希望收到一个包含3列的表:n.name,m.name(在所有行中相同)和weight_sum - 根据特定路径中的权重和。 但是,我收到了这个错误:

reduce(...) requires '| expression' (an accumulation expression) (line 3, 
column 6 (offset: 89))
"WITH REDUCE(weights=0, rel IN r : weights + rel.weight) AS weight_sum, p"

我显然想念一些微不足道的事情。但是什么?

1 个答案:

答案 0 :(得分:1)

不应该是

REDUCE(weights=0, rel IN r | weights + rel.weight) AS weight_sum
根据{{​​3}}中的文档

(使用竖管而不是冒号)?

reduce(totalAge = 0, n IN nodes(p)| totalAge + n.age) AS reduction

希望这有帮助。

此致 汤姆