Neo4j Reduce 关系函数

Neo4j Reduce function on relationships

我有一个数据库,其中包含通过关系连接到游戏的玩家。该关系有一个属性 playtimeTwoWeeks,我想用它来找出每个用户玩了多少时间。

所以我有这个查询

MATCH (n:Player)-[p:PLAYS]-(g:Game)
WITH n, p, g
RETURN g, REDUCE(playtime = 0, play IN p | playtime + play.playtimeTwoWeeks) AS total_playtime

我不确定它是否正确,但我无法测试它,因为我收到错误

Type mismatch: expected Collection but was Relationship (line 3, column 40)

指向 p

我看到了其他一些示例,看起来我做的是正确的,但是我无法弄清楚查询有什么问题。

这个呢?

MATCH (n:Player)-[p:PLAYS]-(g:Game)
WITH n, collect(p) AS plays, g
RETURN g, REDUCE(playtime = 0, play IN plays | playtime + play.playtimeTwoWeeks) AS total_playtime

我认为您不需要像现在这样使用 WITH 子句。我想你可以这样做:

MATCH (n:Player)-[p:PLAYS]-(g:Game) 
RETURN g, SUM(p.playtimeTwoWeeks) as total_playtime