我有一个数据库,让玩家通过关系连接到游戏。这个关系有一个属性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
我不确定它是否正确,但我无法测试它,因为我收到了错误
类型不匹配:预期收集但是关系(第3行, 第40栏
指向 p
我看到了其他一些例子,看起来我做的是正确的,但我无法弄清楚查询有什么问题。
答案 0 :(得分:4)
我认为您不需要使用WITH
条款。我想你可以这样做:
MATCH (n:Player)-[p:PLAYS]-(g:Game)
RETURN g, SUM(p.playtimeTwoWeeks) as total_playtime
答案 1 :(得分:2)
这个怎么样?
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