Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Neo4j中,是否有一种使用loadcsv动态读取关系名称的方法?_Neo4j_Cypher - Fatal编程技术网

在Neo4j中,是否有一种使用loadcsv动态读取关系名称的方法?

在Neo4j中,是否有一种使用loadcsv动态读取关系名称的方法?,neo4j,cypher,Neo4j,Cypher,我已经用Cypher创建了使用loadcsv方法的节点。下一部分是创建与节点的关系。为此,我有以下格式的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 现在,我希望将“路由”名称作为节点之间的关系。

我已经用Cypher创建了使用loadcsv方法的节点。下一部分是创建与节点的关系。为此,我有以下格式的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
现在,我希望将“路由”名称作为节点之间的关系。因此,我在CYPHER中使用了下面的loadcsv命令

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连接”


或者我只是没有找到正确的链接或者没有使用正确的语法。谢谢你的帮助

现在不能,因为这是结构信息

  • 要么用它
  • 或者每种类型使用一个CSV文件,并拼写rel类型
  • 甚至可以过滤CSV并进行多次传递:
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)