重定向关系

APOC 库包含可用于将关系重定向到目标节点的过程。

重定向关系的过程

合格名称 类型

apoc.refactor.from(rel RELATIONSHIP, newNode NODE, config MAP<STRING, ANY>) - 将给定 RELATIONSHIP 重定向到给定的起始 NODE

过程

apoc.refactor.to(rel RELATIONSHIP, endNode NODE, config MAP<STRING, ANY>) - 将给定 RELATIONSHIP 重定向到给定的结束 NODE

过程

示例

以下示例将进一步解释此过程。

重定向目标节点

以下将创建由 FOOBAR 关系连接的 Foo 和 Bar 节点,以及一个独立的 Antony 节点。
CREATE (f:Foo {value: "Foo"})-[rel:FOOBAR {a:1}]->(b:Bar {value: "Bar"})
CREATE (p:Person {name:'Antony'})
RETURN *
apoc.refactor.to.dataset
以下将把 FOOBAR 关系的目标节点从 Bar 节点更改为 Antony 节点。
MATCH (f:Foo)-[rel:FOOBAR {a:1}]->(b:Bar)
MATCH (p:Person {name:'Antony'})
CALL apoc.refactor.to(rel, p, { failOnErrors = true })
YIELD input, output
RETURN input, output

如果运行上述查询,将得到以下图:

apoc.refactor.to

重定向源节点

以下将创建由 FOOBAR2 关系连接的 Foo2 和 Bar2 节点,以及一个独立的 David 节点。
CREATE (f:Foo2 {value: "Foo2"})-[rel:FOOBAR2 {a:1}]->(b:Bar2 {value: "Bar2"})
CREATE (p:Person {name:'David'})
RETURN *
apoc.refactor.from.dataset
以下将把 FOOBAR2 关系的源节点从 Foo 节点更改为 David 节点。
MATCH (f:Foo2)-[rel:FOOBAR2 {a:1}]->(b:Bar2)
MATCH (p:Person {name:'David'})
CALL apoc.refactor.from(rel, p, { failOnErrors = true })
YIELD input, output
RETURN input, output

如果运行上述查询,将得到以下图:

apoc.refactor.from
© . All rights reserved.