2016-07-25 143 views
0

我有一個要求將兩個現有節點與特定Id進行匹配,然後在這些節點之間創建一個關係。 以下是我的密碼。但是當我執行這個時,我總是沒有做任何更改。Neo4j與Id匹配節點並創建關係

MATCH(i:`Mechanical Component`) 
where ID(i)=9912 
with(i) 
match(d:Features{name:"Mechanical Component"}) 
with(d) 
where ID(d)=9934 
MERGE (i)-[:FEATURES]->(d) 
+1

爲什麼你要匹配'id'和'name'上的'Features'節點?你確定2是一致的嗎?你也在第二個'WITH'處失去'i'。 –

回答

0

由於Frank Pavageau在評論中說,您在您的查詢,通過一個與d走過時,我在臨第二WITH條款犯了一個錯誤。以下是更正查詢,你需要:

MATCH(i:Mechanical Component) 
where ID(i)=9912 
with(i) 
match(d:Features{name:"Mechanical Component"}) 
with(d,i) 
where ID(d)=9934 
MERGE (i)-[:FEATURES]->(d) 

請記住,使用內部ID是真的不推薦,因爲它的產生,可能會改變(見Should we use the Neo4J internal id?)。您應該使用您自己的唯一ID(帶約束)並使用此ID匹配您的節點。

+0

謝謝。但是我沒有發現你提供的和我的密碼有什麼不同。我如何在第二場比賽中進行比賽。關於這個微不足道的問題,但我是新人,不知何故,感覺neo4j文件沒有深入研究這些細節。 –

+0

完全是我的不好,我忘了在回答中添加我... – Supamiu

相關問題