2014-10-10 2 views
0

사용자, 재생 목록 및 각 재생 목록에 추가 한 노래가 포함 된 그래프가 있습니다. 스키마는 다음과 같습니다 : 나는 사용자가 (예를 들어 내가 쿼리 당 10 재생 목록에 그것을 제한) 한 모든 재생 목록을 표시하고 사용 사례를Neo4j-Cypher : 1 개의 검색어로 각 재생 목록의 재생 목록 및 노래 목록을 가져옵니다.

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

. 그렇게하는 동안 처음 2 곡의 이미지와 재생 목록에있는 노래 수를 표시하고 싶습니다. 1 사이퍼 쿼리에서이 작업을 수행 할 수있는 방법이 있습니까?

가 나는 1.9

우리가 거기 첨자가 있다면 확실하지 가능하다

답변

1

확실하지 Neo4j 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

+0

로 시뮬레이션 할 안녕 마이클, 덕분에 (다시). 이것은 노래가없는 재생 목록을 반환하지 않는다는 점을 제외하고는 저에게 효과적입니다. null 컬렉션도 캡처하는 방법이 있습니까? – sharath

+0

아, [has_song? : HAS_SONG]이 (가) 근무했습니다. – sharath

관련 문제