3.3.12. DELETE

The DELETE clause is used to delete graph elements — nodes, relationships or paths.

3.3.12.1. Introduction

For removing properties and labels, see Section 3.3.14, “REMOVE”. Remember that you cannot delete a node without also deleting relationships that start or end on said node. Either explicitly delete the relationships, or use DETACH DELETE.

The examples start out with the following database:

alt

3.3.12.2. Delete single node

To delete a node, use the DELETE clause.

Query. 

MATCH (n:Useless)
DELETE n

Result. 

+-------------------+
| No data returned. |
+-------------------+
Nodes deleted: 1

3.3.12.3. Delete all nodes and relationships

This query isn’t for deleting large amounts of data, but is nice when playing around with small example data sets.

Query. 

MATCH (n)
DETACH DELETE n

Result. 

+-------------------+
| No data returned. |
+-------------------+
Nodes deleted: 3
Relationships deleted: 2

3.3.12.4. Delete a node with all its relationships

When you want to delete a node and any relationship going to or from it, use DETACH DELETE.

Query. 

MATCH (n { name: 'Andres' })
DETACH DELETE n

Result. 

+-------------------+
| No data returned. |
+-------------------+
Nodes deleted: 1
Relationships deleted: 2

3.3.12.5. Delete relationships only

It is also possible to delete relationships only, leaving the node(s) otherwise unaffected.

Query. 

MATCH (n { name: 'Andres' })-[r:KNOWS]->()
DELETE r

This deletes all outgoing KNOWS relationships from the node with the name 'Andres'.

Result. 

+-------------------+
| No data returned. |
+-------------------+
Relationships deleted: 2