2016-07-25 9 views
0

Ich habe eine Anforderung, zwei vorhandene Knoten mit einer bestimmten ID übereinstimmen und dann eine Beziehung zwischen diesen Knoten erstellen. Unten ist meine Chiffre. Aber wenn ich das ausführe, bekomme ich immer keine Änderungen.Neo4j Match-Knoten mit ID und erstellen Beziehung

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

Warum passen Sie den Knoten 'Features' sowohl für' id' als auch 'name' an? Sind Sie sicher, dass die 2 konsistent sind? Du verlierst auch 'i' am zweiten' WITH'. –

Antwort

0

Wie Frank Pavageau in den Kommentaren gesagt, Sie haben einen Fehler in der Abfrage von nicht i mit d in tha zweiten WITH Klausel übergeben. Hier wird die korrigierte Abfrage benötigen Sie:

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) 

Beachten Sie, dass die interne ID verwendet, ist wirklich nicht zu empfehlen, da es generiert wird, und ändern kann (siehe Should we use the Neo4J internal id?). Sie sollten wahrscheinlich Ihre eigene eindeutige ID (mit Einschränkungen) verwenden und Ihren Knoten mit dieser ID abgleichen.

+0

Danke. Aber ich habe keinen Unterschied in der von Ihnen zur Verfügung gestellten Chiffre gefunden. Wie trage ich das i im zweiten Match.Sorry über die triviale Frage, aber ich bin neu und irgendwie fühle mich neo4j Dokumentation nicht in diese Details eintauchen. –

+0

total meine schlechte hier, ich habe vergessen, das i in der Antwort hinzuzufügen ... – Supamiu