2014-06-18 48 views
0

我在csv文件中有兩列,emp_idmngr_id。關係是(emp_id)-[:WORKS_UNDER]->(mngr_id)。我想合併所有那些emp_id = mngr_id的節點。如何在創建節點本身時做到這一點?避免具有相同值的節點上的重複neo4j

+1

你能使用的是精確的進口商什麼?或者它是從Cypher LOAD CSV? – Rolf

回答

1

如果我理解正確,您希望確保避免在迭代CSV數據時創建重複關係,並避免在某人爲自己工作的情況下輸入關係。

爲了避免創建一個關係,其中emp_idmngr_id識別同一個人,我建議在處理它之前過濾CSV以輸入數據。在將文件傳遞給Neo4j之前,應該更容易忽略CSV文件中emp_idmngr_id爲相同值的任何行。

接下來,如果你使用的Cypher做進口,這樣的事情可能是有用的:

MERGE (emp:Person{id:'emp_id'}) MERGE (mgr:Person{id:'mngr_id'}) MERGE (emp)-[:WORKS_UNDER]->(mgr) RETURN emp,mgr 

請注意,如果你在一個塊語句多次運行上面的查詢,那麼你就需要每個查詢中的empmgr的唯一標識符。

合併在Neo4j的文檔很好地解釋:http://docs.neo4j.org/chunked/stable/query-merge.html