neo4j - 从 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)
但这对我不起作用。它为我创建了中心节点,但我的中心节点没有像预期的那样连接到第一个节点。怎么了。我希望它是这样的:
解决方案
您的第二个WITH
子句不包含c
,因此c
在该子句之后成为未绑定变量。
改变这个:
WITH srow.Fname AS first, srow.Lname AS last
对此:
WITH c, srow.Fname AS first, srow.Lname AS last
central.csv
顺便说一句,如果只包含一个数据行(就像目前一样),您的查询只会按预期工作。
推荐阅读
- spring-boot - 春季启动:延迟加载不适用于@EmbeddedId字段
- typescript - 如何正确缩小 Typescript 中的类型?
- c# - System.ArgumentOutOfRangeException: '索引超出范围。必须是非负数且小于集合的大小。(参数'索引')'
- sql-server - SQL Server 2019 > 代理作业执行 > 错误“不支持文化”
- android - In MVVM, is the ViewModel always necessary?
- mysql - 插入具有不同列名的多行
- multithreading - Bukkit/Spigot - 如何等到 BukkitRunnable 完成
- java - 尝试编译要通过 JNI 从 Java 调用的 Go 共享对象时出错
- c# - 如何反序列化具有不正确重复结构的 json
- database - 将云中的数据库同步到本地以进行读取规模——如何触发同步?