首页 > 解决方案 > 从 CSV 文件将特定节点导入 Neo4J

问题描述

我正在做一些测试,以弄清楚如何最好地将数据从 CSV 文件导入 Neo4J。我在 Person.csv 文件中有以下数据(3 个标题、Person_ID、名称和类型):

Person_ID       Name    Type
HUA001          Jaap    Layperson
HUA002          Teems   Priest
HUA003          Frank   Layperson

我想导入特定类型的节点(例如“外行人”)。

我考虑过使用 WHERE 语句创建一个 LOAD CSV 命令(见下文),但 Neo4J 并不特别喜欢那个 WHERE 语句。任何想法如何让这个(或具有类似结果的查询)工作?

LOAD CSV WITH HEADERS FROM 'file:///Person.csv' AS row 
WHERE row.Type='Layperson' 
CREATE (p:Person:Layperson {ID: row.Person_ID, name: row.Name})

标签: importneo4jcypherload-csv

解决方案


您可以使用WITHWHERE组合来过滤所需的行并将过滤后的行传递给创建节点的下一个查询。

LOAD CSV WITH HEADERS FROM 'file:///Person.csv' AS row 
WITH row
WHERE row.Type='Layperson'
CREATE (p:Person:Layperson {ID: row.Person_ID, name: row.Name}) 

推荐阅读