apoc.refactor.rename.nodeProperty
Syntax |
|
||
Description |
Renames the given property from |
||
Input arguments |
Name |
Type |
Description |
|
|
The property to rename. |
|
|
|
The new name to give the property. |
|
|
|
The nodes to apply the new name to. If this list is empty, all nodes with the old property name will be renamed. The default is: |
|
|
|
|
|
Return arguments |
Name |
Type |
Description |
|
|
The number of batches the operation was run in. |
|
|
|
The total number of renamings performed. |
|
|
|
The time taken to complete the operation. |
|
|
|
The total number of committed operations. |
|
|
|
The total number of failed operations. |
|
|
|
The total number of failed batches. |
|
|
|
The total number of retries. |
|
|
|
The collected error messages. |
|
|
|
|
|
|
|
|
|
|
|
Constraints associated with the given label or type. |
|
|
|
Indexes associated with the given label or type. |
Setting and removing properties using Cypher
Properties can be referenced dynamically in Cypher without using APOC.
SET n[key] = <expr>
REMOVE n[key]
The dynamically calculated key must evaluate to a STRING
value.
For more information, see the Cypher Manual → Dynamically set or update a property and
Cypher Manual → Dynamically removing a property.
Usage Examples
The examples in this section are based on the following sample graph:
CREATE (mark:DevRel {name: "Mark", city: "London"})
CREATE (jennifer:DevRel {name: "Jennifer", city: "St Louis"})
CREATE (michael:DevRel {name: "Michael", city: "Dresden"})
CREATE (jim:Engineer {name: "Jim", city: "London"})
CREATE (alistair:Engineer {name: "Alistair", city: "London"})
The following query changes the node property city
to location
for all nodes with the DevRel
label using both APOC and Cypher:
MATCH (person:DevRel)
WITH collect(person) AS people
CALL apoc.refactor.rename.nodeProperty("city", "location", people)
YIELD total
RETURN total
MATCH (person:DevRel)
SET person.location = person.city
REMOVE person.city
RETURN count(*) AS total
total | |
---|---|
3 |
The following query returns all the nodes in our graph after this refactoring has been done:
MATCH (n)
RETURN (n)
n |
---|
(:DevRel {name: "Jennifer", location: "St Louis"}) |
(:DevRel {name: "Michael", location: "Dresden"}) |
(:Engineer {city: "London", name: "Jim"}) |
(:DevRel {name: "Mark", location: "London"}) |
(:Engineer {city: "London", name: "Alistair"}) |
This procedure does not rename the property; it creates a new property with the new name and copies the value from the original property, which is then deleted. |