11.5. Remove

Removing properties and labels from graph elements is done using REMOVE.

For deleting nodes and relationships, see Section 11.4, “Delete”.

[Note]Note

Removing labels from a node is an idempotent operation: If you try to remove a label from a node that does not have that label on it, nothing happens. The query statistics will tell you if something needed to be done or not.

The examples start out with the following database:

Remove a property

Neo4j doesn’t allow storing null in properties. Instead, if no value exists, the property is just not there. So, to remove a property value on a node or a relationship, is also done with REMOVE.

Query. 

MATCH (andres { name: 'Andres' })
REMOVE andres.age
RETURN andres

The node is returned, and no property age exists on it.

Result

andres
1 row
Properties set: 1

Node[2]{name:"Andres"}

Try this query live. create (_0:`Swedish` {`age`:25, `name`:"Tobias"}) create (_1:`Swedish`:`German` {`age`:34, `name`:"Peter"}) create (_2:`Swedish` {`age`:36, `name`:"Andres"}) create _2-[:`KNOWS`]->_1 create _2-[:`KNOWS`]->_0 match (andres {name: 'Andres'}) remove andres.age return andres

Remove a label from a node

To remove labels, you use REMOVE.

Query. 

MATCH (n { name: 'Peter' })
REMOVE n:German
RETURN n

Result

n
1 row
Labels removed: 1

Node[1]{name:"Peter",age:34}

Try this query live. create (_0:`Swedish` {`age`:25, `name`:"Tobias"}) create (_1:`Swedish`:`German` {`age`:34, `name`:"Peter"}) create (_2:`Swedish` {`age`:36, `name`:"Andres"}) create _2-[:`KNOWS`]->_1 create _2-[:`KNOWS`]->_0 match (n {name: 'Peter'}) remove n:German return n

Removing multiple labels

To remove multiple labels, you use REMOVE.

Query. 

MATCH (n { name: 'Peter' })
REMOVE n:German:Swedish
RETURN n

Result

n
1 row
Labels removed: 2

Node[1]{name:"Peter",age:34}

Try this query live. create (_0:`Swedish` {`age`:25, `name`:"Tobias"}) create (_1:`Swedish`:`German` {`age`:34, `name`:"Peter"}) create (_2:`Swedish` {`age`:36, `name`:"Andres"}) create _2-[:`KNOWS`]->_1 create _2-[:`KNOWS`]->_0 match (n {name: 'Peter'}) remove n:German:Swedish return n