是否可以在neo4j中的同一csv中导入多个节点类型?

是否可以在neo4j中的同一csv中导入多个节点类型?,neo4j,cypher,Neo4j,Cypher,我想在neo4j中导入一些不同类型的节点,其中节点仅在类型上不同,而在数据上不同。是否可以导入以下内容: NodeType,Id,Name NodeX,1,Yolo NodeY,2,World LOAD CSV WITH HEADERS FROM "file:///nodes.csv" as row WITH row WHERE row.Id IS NOT NULL MERGE (c:row.NodeType {id: row.Id, name: row.Name});

我想在neo4j中导入一些不同类型的节点,其中节点仅在类型上不同,而在数据上不同。是否可以导入以下内容:

NodeType,Id,Name
NodeX,1,Yolo
NodeY,2,World
LOAD CSV WITH HEADERS FROM "file:///nodes.csv" as row
WITH row WHERE row.Id IS NOT NULL
MERGE (c:row.NodeType {id: row.Id, name: row.Name});
然后得到两个节点,一个是类型
NodeX
,另一个是类型
NodeY

我想写的是这样的:

NodeType,Id,Name
NodeX,1,Yolo
NodeY,2,World
LOAD CSV WITH HEADERS FROM "file:///nodes.csv" as row
WITH row WHERE row.Id IS NOT NULL
MERGE (c:row.NodeType {id: row.Id, name: row.Name});

对于具有动态指定标签的节点,可以使用APOC过程执行与
MERGE
等效的操作:

LOAD CSV WITH HEADERS FROM "file:///nodes.csv" as row
WITH row WHERE row.Id IS NOT NULL
CALL apoc.merge.node([row.NodeType], {id: row.Id, name: row.Name}) YIELD node
RETURN node

酷,我会测试一下。谢谢作为一种解决方法,我开始为我想做的每件事生成一行CREATE,但这不是很好。对,这也会使您通过文件数据遭受“密码注入”攻击。