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

标签 neo4j cypher

您好,我试图将CSV文件中的某些数据导入到我的ubuntu 12.04中的neo4j。

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

12ffew3213,232rwe13
12ffew3213,5yur2ru2r
rwerwerw3,432rwe13
rwerwerw3,5yur2ru2r

问题是行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])})

有什么想法吗?谢谢!

最佳答案

这就是你要做的。

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子句的更多信息,请阅读Section 9.5 in the Neo4j Manual

关于neo4j - 如何通过neo4j中导入的csv文件创建唯一的节点和关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25090255/

相关文章:

Neo4j - 添加 id 作为每个节点的属性

neo4j - 是否可以在大型密集图上使用 graphdb

Neo4j 性能 - IN 运算符密码查询

nosql - 如何在图形数据库(如 Neo4j)中建模现实世界的关系?

neo4j - 在 Neo4j 中使用 Cypher 删除空格

neo4j - 在 Cypher 路径查询中返回唯一节点

neo4j - 将 CSV 数据的关系加载到 Neo4j 数据库中

分页性能

ios - 在 neo4j 支持的 iOS 应用程序上创建节点时分配 UUID

neo4j - count(nodes(p)) 在 Cypher、Neo4j 中如何工作