2016-09-22 5 views
0

내가 개념 증명을 개발 neo4j을 사용하고 neo4J 모든 경로를 확인하고 나는 ID가 잎에 내 루트 노드, 예에서 모든 경로에 대한 모든 노드 ID를 얻으려면 :사이퍼

ROOT1-->N1--->SN2--->L1 
ROOT1-->N2--->SN3--->L3 

를 내가 내 결과 쿼리에 들어가고 싶습니다 : ROO1,N1,SN2 and ROOT1,N2,SN3

Im new to cypher 나는이 결과를 얻기 위해 고생하며, 어떤 도움이 유용 할 것입니다.

답변

3

내가 언급 한 IDid 속성이라고 가정합니다.

은 (리프 노드 제외) 각각의 전체 경로의 노드 ID의 컬렉션을 얻으려면 :

+----------------------+ 
| result    | 
+----------------------+ 
| ["ROOT1","N1","SN2"] | 
| ["ROOT1","N2","SN3"] | 
+----------------------+ 
+0

이 굉장이 감사 :

여기
MATCH p=(root {id: 'ROOT1'})-[*]->(leaf) WHERE NOT (leaf)-->() RETURN EXTRACT(x IN NODES(p)[..-1] | x.id) AS result; 

은 샘플 결과입니다! – azelix

+2

슬라이스를'nodes (p) [..- 1]'로 단순화 할 수 있습니다. 음수 인덱스는 끝에서부터 계산됩니다. –

+0

@FrankPavageau : 고마워요. 나는 [[0 .. SIZE (NODES (p)) - 1]'을 훨씬 더 간결한'[..- 1] '로 대체하기 위해 나의 대답을 업데이트했다. – cybersam