2013-12-23 5 views
0

I (본질적으로 연결리스트의 연결리스트)의 구조는 다음과 같습니다neo4j 연결된 목록의 모든 노드를 얻는 방법은 무엇입니까? neo4j에서

(projects) 
    | 
[LatestProject] 
    | 
    V 
(p1:Project)-[LatestTask]->(t1:Task)-[PrevTask]->(t2:Task)-[PrevTask]->(t3:Task) 
    | 
[PrevProject] 
    | 
    V 
(p2:Project)-[LatestTask]->(t4:Task)-[PrevTask]->(t5:Task)-[PrevTask]->(t6:Task) 
    | 
[PrevProject] 
    | 
    V 
(p3:Project)-[LatestTask]->(t7:Task)-[PrevTask]->(t8:Task) 

내가 프로젝트 ID 제공, 최신 하나 (모든 작업을 반환하는 사이퍼 쿼리를 작성하고 싶습니다를 가장 오래된 것까지).

나는 시도 다음

start p=node(2) // project ID = 2 
MATCH p-[:LatestTask]->(first:Task)-[:PreviousTask*]->(t:Task) 
return first, t 

그러나 이것은 여러 행의 테이블 반환

(first) (t1) 
(first) (t2) 

가 어떻게 대신 다음을 반환 할 수 있습니까?

(first) 
(t1) 
(t2) 
+0

죄송합니다. Neo4j 콘솔을 만들려고했지만 지금은 제대로 작동하지 않는 것 같습니다 ... –

답변

1

은 내가 내 자신의 질문에 대한 답을 찾은 것 같아 :

start p=node(2) // project ID = 2 
MATCH p-[:LatestTask|PreviousTask*]->(t:Task) 
return t 

세 가지 별도의 행으로 올바른 집합을 반환 것 같다.

관련 문제