【发布时间】:2015-12-17 07:31:27
【问题描述】:
我是 Neo4j 的新手,并且一直在研究一些示例,并且在从 csv 文件(从关系数据库)导入数据方面取得了一定的成功。我已经设法轻松地为 Persons 创建节点:
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:/home/xxx/Development/Database/exports/persons.csv" AS row
MERGE (:Person {id: toInt(row.id)});
我有第二个 csv 文件,其中包含 2 个人之间的每个关系一行,我正在尝试使用以下 Cypher 查询来创建关系,但没有成功(没有返回数据,也没有任何更改):
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:/home/xxxx/Development/Database/exports/person_relationship.csv" AS row
MATCH (f:Person {id: toInt(row.from_person_id)}), (t:Person {id: toInt(row.to_person_id)})
CREATE (f)-[:RELATED_TO]->(t);
就像我说的,Person 的创建很好,但没有多少 wangling 或示例可以引导我找到正确的语法来创建关系 RELATED_TO。
任何帮助表示赞赏。
【问题讨论】:
-
我也是 neo4j 的新手,最近使用了几乎完全相同的代码,您必须做几乎相同的事情。我只能说你的代码在我的新手眼中看起来是正确的。毫无疑问,您已经检查过了,但您确定
from_person_id和to_person_id与 person.csv 中的ids 匹配吗? -
是的,检查了几次列名...谢谢
-
请注意,我还尝试了在 web ui 中创建关系的语句(用行中的实际值替换行占位符,按预期创建关系...一定与从 csv 文件中提取数据有关?
-
您的第二个陈述看起来是正确的。你能分享几行文件的标题吗?
-
还要确保创建一个约束来加速它:
CREATE CONSTRAINT ON (p:Person) ASSERT p.id IS UNIQUE;
标签: csv neo4j graph-databases