【发布时间】:2016-08-03 19:54:02
【问题描述】:
我有一个 CSV 文件,其中包含以下形式的信息:
Col1,Col2
A,B;C;D
我正在尝试在 A 和 B、C、D 中的每一个之间生成关系。在我的特定情况下,B、C、D 已经通过导入另一个 CSV 文件来创建。因此,我不需要创建这些节点,但我确实需要匹配它们以获取节点以形成关系。
LOAD CSV WITH HEADERS FROM 'file:///file.csv' AS line
WITH line
MERGE (a:Item {name: line.Col1})
FOREACH (x IN SPLIT(line.Col2, ';') |
MATCH (s:Item {name: x})
CREATE UNIQUE (s)-[:rel]->(a));
节点 B、C、D 有多个属性,其中只有一个在第二个 CSV 中,如:
B: {id: 123, name: B}
有没有办法用 Cypher 做到这一点?目前,我收到错误消息:“在 FOREACH 中使用 MATCH 无效”。使用 MERGE 而不是 MATCH 会产生新的、不需要的节点。
【问题讨论】:
标签: neo4j cypher graph-databases