다음과 유사한 쿼리를 사용하고 있습니다.
(n)-[*]->(m)
Any depth.
그러나 다음과 같은 쿼리에서 관계 이름을 필터링 할 수 없습니다.
(n)-[*:DOES]->(m)
Any depth.
관련 경로에 다른 관계가 있기 때문에 관계 이름을 필터링해야합니다. 도움이된다면 내 그래프는 다음과 같습니다.
CREATE (Computer { name:'Computer' }),(Programming { name:'Programming' }),(Java { name:'Java' }),(GUI { name:'GUI' }),(Button { name:'Button' }), Computer<-[:IS]-Programming, Programming<-[:IS]-Java, Java<-[:IS]-GUI, GUI<-[:IS]-Button, (Ekin { name:'Ekin' }), (Gunes { name:'Gunes' }), (Ilker {name:'Ilker'}), Ekin-[:DOES]->Programming, Ilker-[:DOES]->Java, Ilker-[:DOES]->Button, Gunes-[:DOES]->Java
어떤 깊이로든 "프로그래밍"에 연결된 "DOES"관계를 가진 이름 (Ekin, Ilker 및 Gunes)을 얻고 싶습니다.
편집하다:
두 개의 다른 쿼리 결과를 병합하여 원하는 값을 얻을 수 있습니다 (13이 내가 도달하려는 최상위 노드라고 생각).
START n=node(13)
MATCH p-[:DOES]->()-[*]->(n)
RETURN DISTINCT p
START n=node(13)
MATCH p-[:DOES]->(n)
RETURN DISTINCT p
단일 쿼리로 수행하고 싶습니다.
일치하는 패턴을 "p-[: DOES]-> ()-[* 0 ..]-> n"으로 변경합니다.
Match p-[:DOES]->()-[*0..]->n
Return distinct p.name
가변 길이 관계 "[*]"는 1 .. *를 의미합니다. 경로에 0 .. * 길이 관계가 필요합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다