1
votes

I have a database of existing nodes and would like to add in additional relationships from a CSV file which looks like this:

stype,sname,sver,rel,dtype,dname,dver
A,aname,1.1,FRIEND,A,bname,2.2
B,bbb,1.2,ENEMY,A,bname,2.2

My LOAD CSV looks like this. The intent is to match two existing nodes then link with the values in the CSV:

LOAD CSV WITH HEADERS FROM "file:///c:/workspace/neo/demo.csv" as line
MATCH (s:line.stype {name:line.sname,version:line.sver}),
      (d:line.dtype {name:line.dname,version:line.dver})
CREATE (s)-[:line.rel}]->(d)
RETURN COUNT(*);

Am getting this error when I try to set either the label or the relationship type:

Invalid input '.': expected an identifier character, whitespace, NodeLabel, a property map, ')' or a relationship pattern (line 2, column 14)
"MATCH (s:line.stype {name:line.sname,version:line.sver}),"

Is this supported?

1

1 Answers

0
votes

Well parameterized labels are not supported.

In your case you can add a WHERE statement specifying the label for the MATCH you want :

MATCH (s {name:line.sname,version:line.sver}), (d {name:line.dname,version:line.dver})
WHERE line.stype IN labels(s) AND line.dtype IN labels(d)

Cheers,

Chris