apoc.refactor.cloneNodes

Details

Syntax

apoc.refactor.cloneNodes(nodes [, withRelationships, skipProperties ]) :: (input, output, error)

Description

Clones the given NODE values with their labels and properties. It is possible to skip any NODE properties using skipProperties (note: this only skips properties on NODE values and not their RELATIONSHIP values).

Input arguments

Name

Type

Description

nodes

LIST<NODE>

The nodes to be cloned.

withRelationships

BOOLEAN

Whether or not the connected relationships should also be cloned. The default is: false.

skipProperties

LIST<STRING>

Whether or not to skip the node properties when cloning. The default is: [].

Return arguments

Name

Type

Description

input

INTEGER

The internal id of the original entity.

output

NODE

The copied entity.

error

STRING

Any error that occurred during the copy process.

Usage Examples

The examples in this section are based on the following sample graph:

CREATE (mark:Person {name: "Mark", city: "London"})
CREATE (jennifer:Person {name: "Jennifer", city: "St Louis"});

The following creates copies of all Person nodes:

MATCH (p:Person)
WITH collect(p) AS people
CALL apoc.refactor.cloneNodes(people)
YIELD input, output
RETURN input, output;
Results
input output

4

(:Person {name: "Mark", city: "London"})

5

(:Person {name: "Jennifer", city: "St Louis"})

We can list all the Person nodes by running the following query:

MATCH (p:Person)
RETURN p;
Results
p

(:Person {name: "Mark", city: "London"})

(:Person {name: "Jennifer", city: "St Louis"})

(:Person {name: "Mark", city: "London"})

(:Person {name: "Jennifer", city: "St Louis"})