2015-06-30 8 views
0

У меня есть следующий график: http://console.neo4j.org/?id=dsxkmbNeo4j: Возвращает уникальный endNode по нескольким путям

I'm следующего Патрик, Лен и Ганс. Патрик опубликовал собственное видео (видео 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

Вам необходимо агрегировать результат, основанный на человеке, которого вы следовать (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(*) 
+0

Спасибо вам Stefan это работает – Aydin

Смежные вопросы