2017-10-04 1 views
1

기존 관계에서 추가 할 내용을 추가하고 싶습니다. 새로운 관계는 특정 속성 값에 의존해야합니다.Neo4J - 속성 값을 기반으로 관계를 만드는 방법 - 존재하는지 여부

예. 직원의 값이 인 경우 department_id 속성 인 경우 MEMBER_OF에서 department 테이블까지의 관계가 있어야합니다. 1, 2 또는 3이면 1의 관계가 HEAD_OF이어야합니다.

와 나는 관계의 방향 (화살표) 값 -1이 부서 그래프에 존재하지 않는다는 것입니다 추가 할 수있는 서로 -[:HEAD_OF]-> 또는 <-[:MEMBER_OF]-

하나 중요한 것은 반대 할 거라고 생각해. 출발 그래프는 단지 즉 8

까지 1에서 ID를 갖고,이 같은 일을 할 수 있습니다 : 모든 직원은이 경우에 ... 출발 그래프에 존재하지 않는 ID가있는 경우 -1

답변

1

편집

채팅으로 논의 후, 가장 요구 사항에 맞는 쿼리는 다음과 같습니다

첫 번째 쿼리가 department_id <> -1이있는 모든 직원들과 각 부서 간의 :HEAD_OF 관계를 만들 수 있습니다.

MATCH (emp:Employee) 
WHERE emp.department_id <> -1 
MATCH (dep:Department) 
WHERE dep.id = emp.department_id 
CREATE (emp)-[:HEAD_OF]->(dep) 

두 번째 쿼리는 department_id = -1이 직원과 임의의 부서 사이의 관계 :MEMBER_OF를 생성합니다.

MATCH (emp:Employee {department_id : -1}) 
MATCH (randomDep:Department) 
WITH collect(emp) as emps, randomDep LIMIT 1 
UNWIND emps as emp 
CREATE (emp)-[:MEMBER_OF]->(randomDep) 
+0

표 관련하여 ... 맞습니다. 그것은 내가 의미하는 바를 설명하려고하는 일종의 비교 일뿐입니다. –

+0

내 질문이 업데이트되었습니다 ... 값이 '-1'인 ID가 dep 그래프에 존재하지 않습니다. 그것은 몇몇 직원을위한 emp 그래프에 단지 존재합니다. 다른 사람들은 1, 2, 3, 4 또는 .... 8 시까 지 –

+0

@ k.vincent 이해하면 알려주세요 : 직원이 department_id = 1 인 경우이 직원과 부서 간 관계를 만들고 싶습니다 'id = 1'로, 맞습니까? –

관련 문제