ArangoDB v3.13 is under development and not released yet. This documentation is not final and potentially incomplete.
Remove nodes with AQL
Removing connected edges along with node documents directly in AQL is possible in a limited way
Deleting nodes with associated edges is currently not handled via AQL while the graph management interface and the REST API for the graph module offer a node deletion functionality. However, as shown in this example based on the Knows Graph, a query for this use case can be created.

When deleting node eve from the graph, we also want the edges
eve -> alice and eve -> bob to be removed.
The involved graph and its only edge collection has to be known. In this case it
is the graph knows_graph and the edge collection knows.
This query will delete eve with its adjacent edges:
LET edgeKeys = (FOR v, e IN 1..1 ANY 'persons/eve' GRAPH 'knows_graph' RETURN e._key)
LET r = (FOR key IN edgeKeys REMOVE key IN knows)
REMOVE 'eve' IN personsShow output
[ ]This query executed several actions:
- use a graph traversal of depth 1 to get the
_keyof eve’s adjacent edges - remove all of these edges from the
knowscollection - remove node eve from the
personscollection
The following query shows a different design to achieve the same result:
LET edgeKeys = (FOR v, e IN 1..1 ANY 'persons/eve' GRAPH 'knows_graph'
REMOVE e._key IN knows)
REMOVE 'eve' IN personsShow output
[ ]Note: The query has to be adjusted to match a graph with multiple node/edge collections.
For example, the City Graph
contains several node collections - germanCity and frenchCity and several
edge collections - french / german / international Highway.

To delete city Berlin all edge collections french / german / international Highway
have to be considered. The REMOVE operation has to be applied on all edge
collections with OPTIONS { ignoreErrors: true }. Not using this option will stop the query
whenever a non existing key should be removed in a collection.
LET edgeKeys = (FOR v, e IN 1..1 ANY 'germanCity/Berlin' GRAPH 'routeplanner' RETURN e._key)
LET r = (FOR key IN edgeKeys REMOVE key IN internationalHighway
OPTIONS { ignoreErrors: true } REMOVE key IN germanHighway
OPTIONS { ignoreErrors: true } REMOVE key IN frenchHighway
OPTIONS { ignoreErrors: true })
REMOVE 'Berlin' IN germanCityShow output
[ ]