首页 > 解决方案 > 从 neo4j 中的 2 个 csv 文件导入数据

问题描述

作为这篇文章的继续,我在其中完全解释了我应该做什么,如果我的中心节点位于另一个 .csv 文件中,我如何将它导入到我的图表中?

names.csv 的内容(2 列:Lname & Fname):

Lname,Fname
Brown,Helen
Right,Eliza
Green,Helen
Pink,Kate
Yellow,Helen

central.csv 的内容(2 列:central & value):

central,value
cent1,10

我试过这样的事情:

LOAD CSV WITH HEADERS FROM 'file:///central.csv' AS frow
MERGE (c:center {name: frow.central})
WITH *
LOAD CSV WITH HEADERS FROM 'file:///names.csv' AS srow
WITH srow.Fname AS first, srow.Lname AS last
MERGE (p:la {last: last})
MERGE (o:fi {first: first})
MERGE (c)-[r:CONTAINS {first:first}]->(o)
MERGE (o)-[rel:CONTAINS {first: first}]->(p)
RETURN count(o)

但这对我不起作用。它为我创建了中心节点,但我的中心节点没有像预期的那样连接到第一个节点。怎么了。我希望它是这样的:

在此处输入图像描述

标签: neo4jcypher

解决方案


您的第二个WITH子句不包含c,因此c在该子句之后成为未绑定变量。

改变这个:

WITH srow.Fname AS first, srow.Lname AS last

对此:

WITH c, srow.Fname AS first, srow.Lname AS last

central.csv顺便说一句,如果只包含一个数据行(就像目前一样),您的查询只会按预期工作。


推荐阅读