apoc.do.when

Procedure APOC Core

apoc.do.when(condition, ifQuery, elseQuery:'', params:{}) yield value - based on the conditional, executes writing ifQuery or elseQuery with the given parameters

Signature

apoc.do.when(condition :: BOOLEAN?, ifQuery :: STRING?, elseQuery =  :: STRING?, params = {} :: MAP?) :: (value :: MAP?)

Input parameters

Name Type Default

condition

BOOLEAN?

null

ifQuery

STRING?

null

elseQuery

STRING?

params

MAP?

{}

Output parameters

Name Type

value

MAP?

Usage Examples

The following will create a node with a name property of A, as per the ifQuery, because the predicate is true:

CALL apoc.do.when(true,
  'CREATE (a:Node{name:"A"}) RETURN a AS node',
  'CREATE (b:Node{name:"B"}) RETURN b AS node',
  {}
)
YIELD value
RETURN value.node AS node;
Table 1. Results
node

(:Node {name: "A"})

The following will create a node with a name property of B, as per the elseQuery, because the predicate is false:

CALL apoc.do.when(false,
  'CREATE (a:Node{name:"A"}) RETURN a AS node',
  'CREATE (b:Node{name:"B"}) RETURN b AS node',
  {}
)
YIELD value
RETURN value.node AS node;
Table 2. Results
node

(:Node {name: "B"})