我使用Cypher使用LOAD CSV方法创建了节点。下一部分是与节点建立关系。为此,我有以下格式的CSV
fromStopName,from,route,toStopName,to
Swargate,1,route1_1,Swargate Corner,2
Swargate Corner,2,route1_1,Hirabaug,3
Hirabaug,3,route1_1,Maruti,4
Maruti,4,route1_1,Mandai,5
现在我希望将“route”名称作为节点之间的关系。所以,我在CYPHER中使用以下LOAD CSV命令
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:C:\\\\busroutes.csv" AS row
MATCH(f {name:row.fromStopName}),(t {name:row.toStopName}) CREATE f - [:row.route]->t
但看起来,我做不到。相反,如果我静态地命名关系然后从csv路由字段分配属性,它就可以工作。
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:C:\\\\busroutes.csv" AS row
MATCH(f {name:row.fromStopName}),(t {name:row.toStopName}) CREATE f - [:CONNECTS {route: row.route}]->t
我想知道这是否被禁用以强制执行具有“纯粹”动词类型关系的良好做法并避免创建相同关系的多样性。例如“由1_1连接”“由1_2连接”。
或者我只是找不到正确的链接或使用正确的语法。感谢帮助!
答案 0 :(得分:1)
现在你不能,因为这是结构信息。
e.g。
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:C:\\\\busroutes.csv" AS row
with row where row.route = "route1_1"
MATCH(f {name:row.fromStopName}),(t {name:row.toStopName})
CREATE (f)-[:route1_1]->(t)
还有一个使用假条件的技巧,但你仍然需要拼出它们。