apoc.trigger.add
Procedure APOC Core
add a trigger kernelTransaction under a name, in the kernelTransaction you can use {createdNodes}, {deletedNodes} etc., the selector is {phase:'before/after/rollback'} returns previous and new trigger information. Takes in an optional configuration.
Signature
apoc.trigger.add(name :: STRING?, kernelTransaction :: STRING?, selector :: MAP?, config = {} :: MAP?) :: (name :: STRING?, query :: STRING?, selector :: MAP?, params :: MAP?, installed :: BOOLEAN?, paused :: BOOLEAN?)Input parameters
| Name | Type | Default | 
|---|---|---|
| name | STRING? | null | 
| kernelTransaction | STRING? | null | 
| selector | MAP? | null | 
| config | MAP? | {} | 
Output parameters
| Name | Type | 
|---|---|
| name | STRING? | 
| query | STRING? | 
| selector | MAP? | 
| params | MAP? | 
| installed | BOOLEAN? | 
| paused | BOOLEAN? | 
Enable Triggers
By default triggers are disabled.
We can enable them by setting the following property in apoc.conf:
apoc.trigger.enabled=true
apoc.trigger.refresh=60000| Option Key | Value | Description | 
|---|---|---|
| apoc.trigger.enabled | true/false, default false | Enable/Disable the feature | 
| apoc.trigger.refresh | number, default 60000 | Interval in ms after which a replication check is triggered across all cluster nodes | 
Usage Examples
The examples in this section are based on the following graph:
CREATE (:Counter {count:0})
CREATE (f:Foo);Let’s create a trigger that keeps a count of the number of nodes that have been deleted:
CALL apoc.trigger.add(
  'count-removals',
  'MATCH (c:Counter)
   SET c.count = c.count + size([f IN $deletedNodes WHERE id(f) > 0])',
  {}
);| name | query | selector | params | installed | paused | 
|---|---|---|---|---|---|
| "count-removals" | {} | {} | TRUE | FALSE | 
We’ll now delete the Foo node:
MATCH (f:Foo)
DELETE f;0 rows available after 20 ms, consumed after another 0 ms
Deleted 1 nodesAnd finally, let’s check that the count property on our Counter node has been incremented:
MATCH (c:Counter)
RETURN c.count as count;| count | 
|---|
| 1 |