Neo4j 如何使用 apoc.merge.relationship 添加第二个自定义节点和关系到我现有的密码
Neo4j How do you add a second custom node and relationship to my existing cypher using apoc.merge.relationship
所以我在 neo4j 中处理电子邮件数据。在下面的示例中,Sender
是一个节点,Link
(如果电子邮件包含 link)是一个节点,这些节点通过使用列 [=15= 的关系连接] 来自 csv。 Outcome
列可以是以下两种情况之一:aborted
或 delivered
.
LOAD CSV WITH HEADERS FROM ("file:///sessions/parsed_message_amp.csv") AS row
WITH row WHERE NOT row.Url_Sub_Fld IS null
MERGE (a:Sender { name: row.From})
MERGE (b:Link { name: row.Url_Sub_Fld})
WITH a, b, row
CALL apoc.merge.relationship(a, row.Outcome, {}, {}, b) YIELD rel
RETURN a, b
哪个returns:
我想更进一步,添加收到 Links
的 Recipient
和来自另一列的第二个关系。 Recipient
在 csv 的 To
列中,关系来自 Outcome2
列,可以是 to
或 failed
.
我想要的输出是:
我试过:
LOAD CSV WITH HEADERS FROM ("file:///sessions/parsed_message_amp.csv") AS row
WITH row WHERE NOT row.Url_Sub_Fld IS null
MERGE (a:Sender { name: row.From})
MERGE (b:Url { name: row.Url_Sub_Fld})
MERGE (c:Recipient { name: row.To})
WITH a, b, c, row
CALL apoc.merge.relationship(a, row.Outcome, {}, {}, b, row.Outcome2, {}, {},c) YIELD rel
RETURN a, b, c
以及添加第二个 WITH
和 CALL
但这也不起作用。我想在一个脚本中完成这一切。
您试图一次做太多事情。您不需要在一次调用中合并整个模式,使用两次调用 proc 一次合并一个段:
...
WITH a, b, c, row
CALL apoc.merge.relationship(a, row.Outcome, {}, {}, b) YIELD rel as rel1
CALL apoc.merge.relationship(b, row.Outcome2, {}, {}, c) YIELD rel as rel2
RETURN a, b, c
所以我在 neo4j 中处理电子邮件数据。在下面的示例中,Sender
是一个节点,Link
(如果电子邮件包含 link)是一个节点,这些节点通过使用列 [=15= 的关系连接] 来自 csv。 Outcome
列可以是以下两种情况之一:aborted
或 delivered
.
LOAD CSV WITH HEADERS FROM ("file:///sessions/parsed_message_amp.csv") AS row
WITH row WHERE NOT row.Url_Sub_Fld IS null
MERGE (a:Sender { name: row.From})
MERGE (b:Link { name: row.Url_Sub_Fld})
WITH a, b, row
CALL apoc.merge.relationship(a, row.Outcome, {}, {}, b) YIELD rel
RETURN a, b
哪个returns:
我想更进一步,添加收到 Links
的 Recipient
和来自另一列的第二个关系。 Recipient
在 csv 的 To
列中,关系来自 Outcome2
列,可以是 to
或 failed
.
我想要的输出是:
我试过:
LOAD CSV WITH HEADERS FROM ("file:///sessions/parsed_message_amp.csv") AS row
WITH row WHERE NOT row.Url_Sub_Fld IS null
MERGE (a:Sender { name: row.From})
MERGE (b:Url { name: row.Url_Sub_Fld})
MERGE (c:Recipient { name: row.To})
WITH a, b, c, row
CALL apoc.merge.relationship(a, row.Outcome, {}, {}, b, row.Outcome2, {}, {},c) YIELD rel
RETURN a, b, c
以及添加第二个 WITH
和 CALL
但这也不起作用。我想在一个脚本中完成这一切。
您试图一次做太多事情。您不需要在一次调用中合并整个模式,使用两次调用 proc 一次合并一个段:
...
WITH a, b, c, row
CALL apoc.merge.relationship(a, row.Outcome, {}, {}, b) YIELD rel as rel1
CALL apoc.merge.relationship(b, row.Outcome2, {}, {}, c) YIELD rel as rel2
RETURN a, b, c