Neo4j-Cypher:在1个查询中获取每个播放列表中的播放列表和歌曲列表

时间:2014-10-10 23:51:10

标签: neo4j cypher

我有一个图表,其中包含他们在每个播放列表中添加的用户,播放列表和歌曲。架构如下所示:

(user)--HAS_LIST-->(playlist1)--HAS_SONG-->(song1)
  |                     |
  |                     --------HAS_SONG-->(song2)
  |
  ------HAS_LIST-->(playlist2)--HAS_SONG-->(song3)

我有一个用例,我正在显示用户拥有的所有播放列表(比方说我将每个查询限制为10个播放列表)。在这样做的同时,我想向他展示前两首歌曲的图像以及播放列表中歌曲数量的计数。有没有办法在1个密码查询中执行此操作?

我使用Neo4j 1.9

由于

1 个答案:

答案 0 :(得分:1)

不确定在1.9

中是否可行

不确定我们是否有订阅。

类似的东西:

start user = ..
match (user)-[:HAS_LIST]->(playlist)-[:HAS_SONG]->(song)
RETURN playlist, collect(song.title)[0..2] as prevew, count(*) as songs

否则您必须使用[head(songs), head(tail(songs))] as preview

模拟它们