2017-05-11 2 views
0

저는 Neo4j를 처음 접했고 사람들을 움직이는 사람들에 대한 아이디어를 가지고 놀았습니다. [: 소유]는 HouseNeo4j의 순환 링크 만 찾기

House [이 : ISIN]는 Street

Person [이 : 원]는 Street

을 (살기) 이것은 내가 현재

Person이 무엇

목표는 내가

,617을 실행하면 완전한 '체인'

을 찾을 수 있습니다

MATCH (s:Street)<-[:WANTS]-(p:Person)-[:OWNS]->(h:House) RETURN s,h,p

이렇게하면 전체 체인이 다시 사람에게 연결됩니다. 내가하려고하는 것은 완전한 체인 만 반환하고 깨진 체인은 반환하지 않는 것입니다.

또한

MATCH (s:Street)<-[:WANTS]-(p:Person)-[:OWNS]->(h:House)-[:ISIN]->(s) RETURN s,h,p

을 시도했지만이 결과를 반환하지 않습니다. 이견있는 사람?

UPDATE 나는이 MATCH (s:Street)<-[:WANTS]-(p:Person)-[:OWNS]->(h:House)-[:ISIN]->(s1: Street) RETURN s,h,p

을 수행하여 결과를 반환 마지막 쿼리를 가지고 그러나 이것은 내가 원하는 경우 확실하지 않다.

순환적인 결과를 돌려 주기만하면 완벽한 하우스 이동 체인을 볼 수 있습니다. 궁극적으로 한 사람을 기반으로 그래서 거기에 넣어해야합니다.

내가 두 변수에 동일한 노드를 일치하지 않을 수있는 하나의 일치 일명 체인에 노드를 반복하지 않을 것이다

+0

샘플 데이터와 원하는 결과는 어떻습니까? –

+0

원하는 결과가 거기에있었습니다. '내가하려는 것은 완전한 체인 만 반환하고 깨진 체인은 반환하지 않는 것입니다.' 데이터 세트를 어떻습니까? –

+0

"결코 결과를 반환하지 않습니다"!? 그런 순환 참조가 실제로 데이터베이스에 존재하지 않을 수 있습니까? – hlihovac

답변

0

MATCH 큰 데이터 집합 쿼리 내일을 이동하려고합니다. 하지만 마지막 절을 where 절로 구분할 수 있습니다.

MATCH (s:Street)<-[:WANTS]-(p:Person)-[:OWNS]->(h:House) 
WHERE (h)-[:ISIN]->(s) 
RETURN s,h,p