neo4j를 배우려고하고 있는데 나무 꼭대기가 아닌 한 직원이 관리자가있는 기본 직원/고용주 예제부터 시작하려고합니다.neo4j에서 노드와 트리 맨 사이의 노드를 반환하는 방법
내 구조는 employee-> MANAGEDBY-> manager-> MANAGEDBY-> manager-> MANAGEDBY-> manager처럼 보입니다. 그러나 각 관리자는 여러 명의 직원 또는 관리자를 둘 수 있습니다.
내가 할 수 있기를 원하는 것은 직원과 주 보스 (CEO/사장/기타) 간의 모든 관리자 목록을 얻는 것입니다.
처음에 나는이 그렇게 내 매니저와 그/그녀의 매니저와 보여뿐만 아니라 것이
MATCH(baseEmployee {Name: 'Josh'})-[:MANAGEDBY*0..]-(managers)
RETURN managers.Name;
같은 쿼리 진형 그러나 또한 내가 원하는 때 자신이 관리하는 모든 사람을 보여주는 것 같다 표시하는 것은
Josh,
Boss,
BossBoss,
BossBossBoss,
CEO
약간의 검색 후
내가 다음 쿼리
MATCH p=(baseEmployee {Name: 'Josh'})-[:MANAGEDBY*0..]-(managers)
WHERE NOT(managers-[:MANAGEDBY]->())
RETURN p;
를 사용하여 가까이 관리 약간의 행운이 같은 목록입니다
저는 neo4j를 배우기 때문에 여기서 일어나는 일에 대해 가장 잘 추측합니다. 제 자신이 MANAGEDBY 관계가없는 첫 번째 관리자에게로가는 길이라는 것입니다. 내 문제는 이것이 경로를 반환하고 나는 단지 관리자 목록을 선호하는 것입니다.
p = 쿼리를 수행하지 않고도이 작업을 수행 할 수 있습니까?
나는 당신이 관계의 방향을 지정할 수 있다는 것을 몰랐습니다. 나는 MATCH (baseEmployee {Name : 'Josh'})와 같은 것으로 생각한다. - [: MANAGEDBY * 0 ..] -> (managers) RETURN managers.Name; 그것이 내게서 나무의 가장 높은 층으로 가면서 나무의 부모만을 포함하는 것처럼 보이고 절대로 아래를지나 다니는 것처럼 나의 필요를 완벽하게 충족시킨다. – Josh