基于他们喜欢的游戏,neo4j中每个游戏的前10位用户

时间:2015-05-20 14:50:47

标签: neo4j cypher

我正试图让那些喜欢特定游戏的前十名用户使用1到25的game_id。 这些游戏与名为rating_val = 1到10的用户称为评级有关系。

如何获得包含所有用户组的25行,每个用户的rating_val为1到10个每个游戏类别的desc顺序。

基本上:
25个游戏类别,ID为1到25 games_like是与1-10的rating_val的关系 用户是具有id,名称

的节点

此查询无效:

$type

1 个答案:

答案 0 :(得分:0)

我有点困惑,因为您的描述似乎只是说您想要在用户和游戏之间加入,但您的查询是针对一个游戏匹配两个用户。另外,你的游戏节点有标签吗?

根据您的描述,这是我要写的查询:

MATCH (game)<-[rel:games_like]-(user:user)
WITH game, user ORDER BY rel.rating_val DESC
RETURN game, collect(user)[0..10]

返回每个游戏的顶级用户。如果你想限制它,你可以这样做:

MATCH (game)<-[rel:games_like]-(user:user)
WHERE
  1 <= game.game_id AND game.game_id <= 25 AND
  1 <= rel.rating_val AND rel.rating_val <= 10
WITH game, user ORDER BY rel.rating_val DESC
RETURN game, collect(user)[0..10]