How to set relationship type and label in LOAD CSV?

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-08 03:31:17

问题


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:


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



来源:https://stackoverflow.com/questions/24871552/how-to-set-relationship-type-and-label-in-load-csv

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!