我有一個要求將兩個現有節點與特定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)
我有一個要求將兩個現有節點與特定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)
由於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匹配您的節點。
謝謝。但是我沒有發現你提供的和我的密碼有什麼不同。我如何在第二場比賽中進行比賽。關於這個微不足道的問題,但我是新人,不知何故,感覺neo4j文件沒有深入研究這些細節。 –
完全是我的不好,我忘了在回答中添加我... – Supamiu
爲什麼你要匹配'id'和'name'上的'Features'節點?你確定2是一致的嗎?你也在第二個'WITH'處失去'i'。 –