ich eine CSV-Datei, die Informationen in Form hat:LOAD CSV mit einer Sammlung MATCH und foreach eine Beziehung zu bilden
Col1,Col2
A,B;C;D
Ich versuche, die Beziehungen zwischen A zu erzeugen, und jedes von B, C , D. In meinem speziellen Fall wurden B, C, D bereits durch Importieren einer anderen CSV-Datei erstellt. Daher muss ich diese Knoten nicht erstellen, aber ich muss sie zuordnen, damit der Knoten die Beziehung bildet.
LOAD CSV WITH HEADERS FROM 'file:///file.csv' AS line
WITH line
MERGE (a:Item {name: line.Col1})
FOREACH (x IN SPLIT(line.Col2, ';') |
MATCH (s:Item {name: x})
CREATE UNIQUE (s)-[:rel]->(a));
Knoten B, C, D haben mehrere Eigenschaften, von denen nur einer in der zweiten CSV, wie:
B: {id: 123, name: B}
Gibt es eine Möglichkeit, dies mit Cypher zu tun? Derzeit erhalte ich den Fehler: "Ungültige Verwendung von MATCH in FOREACH". Die Verwendung von MERGE anstelle von MATCH führt zu neuen, unerwünschten Knoten.
Dies funktionierte nicht in mein Fall, weil ich mehrere Eigenschaften auf den Knoten habe, die zusammengebracht werden. Ich habe die Frage bearbeitet, um diesen fehlenden Teil der Frage zu reflektieren. – cannin
@cannin Ich erweiterte meine Antwort. –