我有这样的CSV,第一行是标题(H1,H2,H3 ...)-
H1,H2,H3,H4,H5,...
a1,a2,a3,a4,a5,...
b1,b2,b3,b4,b5,...
我已经有一个neo4j数据库,其中使用第一列(H1)合并节点,并使用H2和H3的行创建一个新节点。当我剥离标题行时,我的代码如下所示-
LOAD CSV FROM 'file:///mycsv.csv' AS row
MERGE (a:existingNode {name:row[0]})
CREATE (b:NewNode {name1:row[2], name2: row[1], name3: row[0]})
MERGE (a)-[:isAssociated]->(b)
如何导入CSV,以便将其余标头H4,H5,...设置为已创建节点的属性(基于H2和H3),而不必在已创建节点下分配每个标头?我想要标题名称作为属性。谢谢。
假设您知道CSV标头的前3个元素的名称,则此查询:
LOAD CSV WITH HEADER
,row
,并且SET b += ...
操作将地图的元素添加到b
(无需触摸其他具有不同名称的现有属性)LOAD CSV WITH HEADERS FROM 'file:///mycsv.csv' AS row
MERGE (a:existingNode {name: row.H1})
CREATE (b:NewNode {name1: row.H3, name2: row.H2, name3: row.H1})
SET b += apoc.map.removeKeys(row, ['H1', 'H2', 'H3'])
MERGE (a)-[:isAssociated]->(b)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句