apoc.refactor.cloneNodes
Procedure APOC Core
apoc.refactor.cloneNodes([node1,node2,…]) clone nodes with their labels and properties
Signature
apoc.refactor.cloneNodes(nodes :: LIST? OF NODE?, withRelationships = false :: BOOLEAN?, skipProperties = [] :: LIST? OF STRING?) :: (input :: INTEGER?, output :: NODE?, error :: STRING?)Input parameters
| Name | Type | Default | 
|---|---|---|
| nodes | LIST? OF NODE? | null | 
| withRelationships | BOOLEAN? | false | 
| skipProperties | LIST? OF STRING? | [] | 
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;| 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;| p | 
|---|
| (:Person {name: "Mark", city: "London"}) | 
| (:Person {name: "Jennifer", city: "St Louis"}) | 
| (:Person {name: "Mark", city: "London"}) | 
| (:Person {name: "Jennifer", city: "St Louis"}) |