1

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?

tbond
  • 205
  • 1
  • 8

1 Answers1

0

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

Christophe Willemsen
  • 19,399
  • 2
  • 29
  • 36
  • Thanks for the idea Christophe, that works for the labels but the relationship type is also a parameter. There are only a limited number of these, maybe I could handle with a conditional. Still working on. – tbond Jul 23 '14 at 21:15
  • @tbond how did you end up doing this? i have the same need and problem – Roger Sanchez Aug 25 '14 at 03:40
  • @RogerSanchez No progress as my current solution of deleting the whole set and reloading only takes a few seconds. Hoping this will be added as a product feature. – tbond Sep 02 '14 at 12:56