apoc.atomic.remove

Procedure

apoc.atomic.remove(container Any, propertyName String, position Integer, retryAttempts Integer) - removes the element at position from the array value of a property. The procedure then sets the property to the resulting array value.

Signature

apoc.atomic.remove(container :: ANY?, propertyName :: STRING?, position :: INTEGER?, retryAttempts = 5 :: INTEGER?) :: (container :: ANY?, property :: STRING?, oldValue :: ANY?, newValue :: ANY?)

Input parameters

Name Type Default

container

ANY?

null

propertyName

STRING?

null

position

INTEGER?

null

retryAttempts

INTEGER?

5

Output parameters

Name Type

container

ANY?

property

STRING?

oldValue

ANY?

newValue

ANY?

Usage examples

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

CREATE (:Person {name:'Tom',age: 40})
CREATE (:Person {name:'Will',age: 35})
CREATE (:Person {name:'David', children: ['Anne','Sam','Paul']})
CREATE (:Person {name:'John', cars: ['Class A','X3','Focus']})
CREATE (:Person {name:'Ryan', salary1:1800, salary2:1500});

The following removes the element X3, which is at position 1, from the array cars

MATCH (p:Person {name:'John'})
CALL apoc.atomic.remove(p,'cars',1,5)
YIELD oldValue, newValue
RETURN oldValue, newValue;
Table 1. Results
oldValue newValue

["Class A", "X3", "Focus"]

["Class A", "Focus"]