无法 link 使用 Neo4j 自身的节点
Unable to link a node with itself using Neo4j
如何创建节点到自身的关系?我有一个节点 (p:person),我的 csv 有 2 列:name 和 vice。我的 csv 中的每一行代表一个当时担任首席执行官和副总裁的人。现在有时副总裁是首席执行官,所以我想展示这种关系。这是我正在尝试但没有运气。如果我不包括 WITH,我会收到错误消息说我需要它,但是当我添加 * 或 属性 时,它说找不到行。我卡住了
:auto USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM 'file:///ceo_vp.csv' AS row
CREATE (p:person {name:coalesce(row.name,'UNK')})
MATCH (p:person {name:row.vice })
WITH *
CREATE (p)-[:was_vp_for]->(p)
变量p有错字;您必须为 vp 分配一个不同的变量名。这是脚本;
LOAD CSV WITH HEADERS FROM 'file:///ceo_vp.csv' AS row
MERGE (ceo:person {name:coalesce(row.name,'UNK')})
MERGE (vice:person {name:row.vice })
CREATE (vice)-[:was_vp_for]->(ceo)
请注意,我使用合并是因为正如您所说,副总裁可以是前任首席执行官(反之亦然),因此合并比创建更好。如果此人已存在,合并将忽略该人。
如何创建节点到自身的关系?我有一个节点 (p:person),我的 csv 有 2 列:name 和 vice。我的 csv 中的每一行代表一个当时担任首席执行官和副总裁的人。现在有时副总裁是首席执行官,所以我想展示这种关系。这是我正在尝试但没有运气。如果我不包括 WITH,我会收到错误消息说我需要它,但是当我添加 * 或 属性 时,它说找不到行。我卡住了
:auto USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM 'file:///ceo_vp.csv' AS row
CREATE (p:person {name:coalesce(row.name,'UNK')})
MATCH (p:person {name:row.vice })
WITH *
CREATE (p)-[:was_vp_for]->(p)
变量p有错字;您必须为 vp 分配一个不同的变量名。这是脚本;
LOAD CSV WITH HEADERS FROM 'file:///ceo_vp.csv' AS row
MERGE (ceo:person {name:coalesce(row.name,'UNK')})
MERGE (vice:person {name:row.vice })
CREATE (vice)-[:was_vp_for]->(ceo)
请注意,我使用合并是因为正如您所说,副总裁可以是前任首席执行官(反之亦然),因此合并比创建更好。如果此人已存在,合并将忽略该人。