如何通过neo4j中导入的csv文件创建唯一的节点和关系?
您好,我正在尝试将csv文件中的一些数据导入ubuntu 12.04中的neo4j csv文件是一个没有标题的两列数据文件,其格式如下:如何通过neo4j中导入的csv文件创建唯一的节点和关系?,neo4j,cypher,Neo4j,Cypher,您好,我正在尝试将csv文件中的一些数据导入ubuntu 12.04中的neo4j csv文件是一个没有标题的两列数据文件,其格式如下: 12ffew3213,232rwe13 12ffew3213,5yur2ru2r rwerwerw3,432rwe13 rwerwerw3,5yur2ru2r 问题是第0行和第1行中的数据不是唯一的,例如,数据可能是3000行,并且只有100个唯一的第0行值和300个唯一的第1行值 我想构建一个图,其中包含唯一的100个row0节点和300个row1节点,以
12ffew3213,232rwe13
12ffew3213,5yur2ru2r
rwerwerw3,432rwe13
rwerwerw3,5yur2ru2r
问题是第0行和第1行中的数据不是唯一的,例如,数据可能是3000行,并且只有100个唯一的第0行值和300个唯一的第1行值
我想构建一个图,其中包含唯一的100个row0节点和300个row1节点,以及这些节点之间的3000个关系(如果12ffew213232rwe13出现两次,则有2条边)
因为我是neo4j和Cypher的新手。在我尝试创建和合并一段时间后,我仍然无法构建唯一的节点。我用了类似
LOAD CSV FROM 'file:///home/nate/Downloads/file.csv' AS line
MERGE (:A { number: toString(line[0])})-[:LIKES]->(:B { ID: toString(line[1])})
有什么想法吗?谢谢 这是你要做的
LOAD CSV FROM 'file:///home/nate/Downloads/file.csv' AS line
MERGE (n:A {number : line[0]})
WITH line, n
MERGE (m:B {ID : line[1]})
WITH m,n
MERGE (n)-[:LIKES]->(m);
首先创建或匹配
:A
节点,然后创建或匹配:B
节点,然后创建或匹配关系。WITH
子句收集序列中每一点的结果,以便在下一步中使用。要了解更多关于WITH
子句的信息,请阅读。对于带有标题的csv,请阅读相同的内容。如果我们的标题为'head1','head2',我们的代码将为:
LOAD CSV WITH HEADERS FROM 'file:///home/nate/Downloads/file.csv' AS line
MERGE (n:A {number : line.head1})
WITH line, n
MERGE (m:B {ID : line.head2})
WITH m,n
MERGE (n)-[:LIKES]->(m);
回答得好。有什么方法可以用HEADER来实现这一点吗?