각 노드가 Java 클래스를 나타내고 각 인스턴스에 namespace라는 속성이있는 그래프가 있습니다. 시작 노드와 최종 노드가 네임 스페이스를 공유하지만 모든 중간체가 해당 네임 스페이스를 공유하지 않는 패턴과 일치 시키려합니다. theres 3 개의 종류 (종류 A -> 종류 B -> 종류 C) i가있는 경우에 :조건이 참일 때 neo4j/cypher 쿼리를 중지합니다.
START inside1 = node(*)
match inside1 -[:USES]-> outside1 -[:USES] -> inside2
where inside1.namespace <> outside1.namespace
and inside2.namespace = inside1.namespace
return inside1.name, outside1.name, inside2.name
이것은 잘 작동하는 것을 보인다. 나는 그것을 확장했을 때, 나는 시도 :
START inside1 = node(*)
match inside1 -[:USES]-> outside1 -[:USES*] -> inside2
where inside1.namespace <> outside1.namespace
and outside1.namespace <> inside1.namespace
and inside2.namespace = inside1.namespace
return inside1.name, outside1.name, inside2.name
문제는 내가 중간 노드가 inside1과 같은 네임 스페이스를 공유하는 경로를 싶지 않는 것입니다. 그래서 내 질문은, 어쨌든 내가 말할 수있는 "네가 네임 스페이스 whos 네임 스페이스 inside1.namespace 같음 때"중지 할 수 있습니까?
감사합니다.
매우 깔끔한 웨스 인상적! –
@PeterNeubauer 확인해 주셔서 감사합니다 - 그가 찾고있는 것이기를 바랍니다. :) –