在Neo4j中从csv加载节点时有条件地创建节点和关系

sto*_*fer 4 csv neo4j cypher

我有一个csv格式的数据集.其中一个字段是类型,如枚举.基于这种类型,我需要在使用csv load加载数据时创建不同类型的节点和关系.您可以在csv中为具有定义其子类型的属性的超类型调用一行.

我真的无法弄清楚如何在密码中完成这项工作.我唯一的选择是将每个类型的csv文件拆分为csv文件并运行不同的密码?

小智 5

条件语句的这个文件有帮助.

这是一个基于列值加载的简单示例:

数据:a,b福特,汽车雪佛兰,卡车马自达,汽车GMC,卡车F150,卡车

Cypher代码:

load csv with headers from "file:/testfile.csv" as row
FOREACH(ignoreMe IN CASE WHEN trim(row.b) = "truck" THEN [1] ELSE [] END | MERGE (p:Truck {vehicleType: row.a}))
FOREACH(ignoreMe IN CASE WHEN trim(row.b) = "car" THEN [1] ELSE [] END | MERGE (p:Car {vehicleType: row.a}))
Run Code Online (Sandbox Code Playgroud)

完成后,您将创建不同类型的节点.