Neo4j:通过多个路径返回唯一的endNode

时间:2015-06-30 10:23:53

标签: neo4j distinct

我有以下图表:http://console.neo4j.org/?id=dsxkmb

我跟随Patrick,Lena和Hans。帕特里克发布了他自己的视频(视频2),但莉娜和汉斯只分享了这个视频(视频2)。

现在我的陈述是:

MATCH (u:User)-[follows:FOLLOW]->(n:User)-[rel:MY_VIDEO_IS|MY_SHAREVIDEO_IS]->(v:Video)
WHERE u.profilname='Me'
WITH v,n,rel
WITH DISTINCT v,n,rel
RETURN v,n,rel
LIMIT 10

此语句返回4个结果。 3次“视频2”和1次“视频1”。但我希望“视频2”和“视频1”只返回1次。

我该如何解决?

1 个答案:

答案 0 :(得分:1)

您需要根据您关注的人(n此处)汇总结果:

MATCH (u:User{profilname:'Me'})-[follows:FOLLOW]->(n:User)
    -[rel:MY_VIDEO_IS|MY_SHAREVIDEO_IS]->(v:Video)
RETURN v.videoname, collect(n.profilname), collect(type(rel)), count(*)