Redirect relationships
The available procedures are described in the table below:
|
redirect relationship to use new end-node |
|
redirect relationship to use new start-node |
Example Usage
The examples below will help us learn how to use these procedures.
Redirect Target Node
The following creates Foo and Bar nodes that are connected by a
FOOBAR
relationship, as well as a solitary Antony node:CREATE (f:Foo {value: "Foo"})-[rel:FOOBAR {a:1}]->(b:Bar {value: "Bar"})
CREATE (p:Person {name:'Antony'})
RETURN *
The following will change the target node of the
FOOBAR
relationship from the Bar node to the Antony node:MATCH (f:Foo)-[rel:FOOBAR {a:1}]->(b:Bar)
MATCH (p:Person {name:'Antony'})
CALL apoc.refactor.to(rel, p)
YIELD input, output
RETURN input, output
If we execute this query, it will result in the following graph:
Redirect Source Node
The following creates Foo2 and Bar2 nodes that are connected by a
FOOBAR2
relationship, as well as a solitary David node:CREATE (f:Foo2 {value: "Foo2"})-[rel:FOOBAR2 {a:1}]->(b:Bar2 {value: "Bar2"})
CREATE (p:Person {name:'David'})
RETURN *
The following will change the source node of the
FOOBAR2
relationship from the Foo node to the David node:MATCH (f:Foo2)-[rel:FOOBAR2 {a:1}]->(b:Bar2)
MATCH (p:Person {name:'David'})
CALL apoc.refactor.from(rel, p)
YIELD input, output
RETURN input, output
If we execute this query, it will result in the following graph: