2017-10-04 12 views
1

既存の関係では、追加のものを追加したいと思います。新しい関係は、特定の属性値に依存する必要があります。Neo4J - 属性値に基づいて関係を作成する方法 - 存在するかどうか

など。従業員の値がの場合は、MEMBER_OFからdepartmentのテーブルを持ちます.1,2,3の場合は、HEAD_OFという関係になります。

そして私は関係のための方向(矢印)が追加する-[:HEAD_OF]->または<-[:MEMBER_OF]-

一つ重要なことは、値-1が部門グラフに存在しないということである互いに逆になると思います。この場合-1

答えて

1

に...どの従業員がDEPグラフに存在しないIDを持っている場合:DEPのグラフは、換言すれば、8

までちょうど1からIDを持っている。このようなものかもしれませんチャットで議論した後EDIT

、最高の要件に合ったクエリは次のとおりです。

最初のクエリが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) 

2番目のクエリは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 Graphに存在しません。それは一部の従業員のためのempグラフにのみ存在します。他の人は1,2,3,4、...から8までです –

+0

@ k.vincentわかったら教えてください:従業員に 'department_id = 1'があれば、この従業員と部門との関係を作りたいと思います'id = 1'で、そう? –

関連する問題