2017-10-04 195 views
1

在現有的關係中,我想添加一個。新的關係應該取決於特定的屬性值。Neo4J - 如何根據屬性值創建關係 - 如果存在與否?

E.g.如果員工在department_id財產中的值爲-1,那麼他應該有一個關係:MEMBER_OFdepartment表,如果他有1,2或3,那麼他應該有一個關係爲HEAD_OF

而且我覺得對於關係的方向(箭頭)是相反補充的是,價值-1不繫圖中存在相互-[:HEAD_OF]-><-[:MEMBER_OF]-

一個重要的事情。 DEP的圖有ID的距離1日至8

換句話說,這可能是這樣的:如果任何員工都有其不DEP圖中存在......在這種情況下,一個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。它只存在於一些僱員的圖表中。其他人有1,2,3,4或....直到8 –

+0

@ k.vincent讓我知道,如果我明白了:如果一個員工有'department_id = 1',你想在這個員工和一個部門之間建立關係'id = 1',對嗎? –