Lesen von csv, ich erstellen eine einfache Grafik DB mit "Scotch" und "Region" Knoten.Zuweisen mehrerer Eigenschaften aus abgegrenzten CSV-Spalten in neo4j Cypher
Ich möchte Eigenschaften für den Scotch-Knoten für Pipe-getrennte Felder zuweisen. Der Catch ist, dass jede Feldinstanz nicht unbedingt die gleiche Anzahl von Begrenzungswerten enthält.
Für ein einzelnes Feld, hier 'NOSE' (die zB 'frisch' oder enthalten kann 'FRESH | SEA' oder 'FRESH | MEER | FRUIT'), ich die folgende Abfrage erfolgreich ausgeführt:
LOAD CSV WITH HEADERS FROM
'file:///scotch_narrow.csv' AS line
WITH line, SPLIT(line.NOSE, '|') AS v1
CREATE (scotch:Scotch {name: line.SCOTCH, nose: v1})
MERGE (region:REGION {name: line.REGION, district: line.DISTRICT})
CREATE (scotch)-[:MADE_IN]->(region)
ich versuche dann mehrere Eigenschaften auf einmal mit dem gleichen Paradigma wie unten zuweisen:
LOAD CSV WITH HEADERS FROM
'file:///scotch_narrow.csv' AS line
WITH line, SPLIT(line.NOSE, '|') AS v1
WITH line, SPLIT(line.BODY, '|') AS v2
WITH line, SPLIT(line.FINISH, '|') AS v3
WITH line, SPLIT(line.PALETTE, '|') AS v4
CREATE (scotch:Scotch {name: line.SCOTCH, nose: v1, body: v2, finish: v3, palette: v4})
MERGE (region:REGION {name: line.REGION, district: line.DISTRICT})
CREATE (scotch)-[:MADE_IN]->(region)
ich dann erhalte eine Fehlermeldung; Variable 'v2' wird nicht definiert:
Variable `v2` not defined (line 4, column 115 (offset: 178))
"WITH line, SPLIT(line.NOSE, '|'), SPLIT(line.BODY, '|'),
SPLIT(line.FINISH, '|'), SPLIT(line.PALETTE, '|') AS v1, v2, v3, v4"
Wo ist meine Syntax falsch gelaufen?
Ausgezeichnet, danke @InverseFalcon - Änderung der "WITH" Teil meiner Abfrage gelöst meine Syntax Problem. Vielen Dank für Ihre Empfehlung, die Eigenschaften als Knoten zu modellieren, diese Übung wird hilfreich sein, um mein Verständnis von Graph DB-Fähigkeiten zu erweitern. –