如何通过在neo4j中导入的csv文件创建唯一的节点和关系?

use*_*521 6 neo4j cypher

你好我试图在我的ubuntu 12.04中将csv文件中的一些数据导入neo4j.

csv文件是一个双列数据文件,没有标题,其格式如下:

12ffew3213,232rwe13
12ffew3213,5yur2ru2r
rwerwerw3,432rwe13
rwerwerw3,5yur2ru2r
Run Code Online (Sandbox Code Playgroud)

事物是第0行和第1行中的数据不是唯一的,例如数据可能是3000行,并且只有100个唯一的row0值和300个唯一的row1值.

我想构建一个具有唯一100个row0节点和300个row1节点以及这些节点之间3000个关系的图形(如果12ffew3213,232rwe13出现两次,则有2个边缘).

因为我是neo4j和Cypher的新手.在尝试使用CREATE和MERGE一段时间之后,我仍然无法构建UNIQUE节点.我用了类似的东西

LOAD CSV FROM 'file:///home/nate/Downloads/file.csv' AS line
MERGE (:A { number: toString(line[0])})-[:LIKES]->(:B { ID: toString(line[1])})
Run Code Online (Sandbox Code Playgroud)

任何想法??谢谢!

Jim*_*ard 12

这是你做的.

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);
Run Code Online (Sandbox Code Playgroud)

首先创建或匹配:A节点,然后创建或匹配:B节点,然后创建或匹配关系.WITH子句收集序列中每个点的结果,以便在下一个中使用.要了解有关WITH子句的更多信息,请阅读Neo4j手册中的第9.5节.