apoc.refactor.rename.label

Details

Syntax

apoc.refactor.rename.label(oldLabel, newLabel [, nodes ]) :: (batches, total, timeTaken, committedOperations, failedOperations, failedBatches, retries, errorMessages, batch, operations, constraints, indexes)

Description

Renames the given label from oldLabel to newLabel for all NODE values. If a LIST<NODE> is provided, the renaming is applied to the NODE values within this LIST<NODE> only.

Input arguments

Name

Type

Description

oldLabel

STRING

The label to rename.

newLabel

STRING

The new name to give the label.

nodes

LIST<NODE>

The nodes to apply the new name to. If this list is empty, all nodes with the old label will be renamed. The default is: [].

Return arguments

Name

Type

Description

batches

INTEGER

The number of batches the operation was run in.

total

INTEGER

The total number of renamings performed.

timeTaken

INTEGER

The time taken to complete the operation.

committedOperations

INTEGER

The total number of committed operations.

failedOperations

INTEGER

The total number of failed operations.

failedBatches

INTEGER

The total number of failed batches.

retries

INTEGER

The total number of retries.

errorMessages

MAP

The collected error messages.

batch

MAP

{ total :: INTEGER, failed :: INTEGER, committed :: INTEGER, errors :: MAP }

operations

MAP

{ total :: INTEGER, failed :: INTEGER, committed :: INTEGER, errors :: MAP }

constraints

LIST<STRING>

Constraints associated with the given label or type.

indexes

LIST<STRING>

Indexes associated with the given label or type.

Usage Examples

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

CREATE (mark:Engineer {name: "Mark", city: "London"})
CREATE (jennifer:Engineer {name: "Jennifer", city: "St Louis"})
CREATE (michael:Engineer {name: "Michael", city: "Dresden"})
CREATE (jim:Engineer {name: "Jim", city: "London"})
CREATE (alistair:Engineer {name: "Alistair", city: "London"})

MERGE (jim)-[:COLLEAGUES {since: date("2006-05-01")}]->(alistair)
MERGE (mark)-[:COLLEAGUES {since: date("2018-02-01")}]->(jennifer)
MERGE (mark)-[:COLLEAGUES {since: date("2013-05-01")}]->(michael);

The following changes the label on Mark, Jennifer, and Michael from Engineer to DevRel:

MATCH (person:Engineer)
WHERE person.name IN ["Mark", "Jennifer", "Michael"]
WITH collect(person) AS people
CALL apoc.refactor.rename.label("Engineer", "DevRel", people)
YIELD batches, total, timeTaken, committedOperations
RETURN batches, total, timeTaken, committedOperations;
Results
batches total timeTaken committedOperations

1

3

0

3

After this query has run, we’ll have the following graph:

apoc.rename update node labels