Что касается вашего непосредственного вопроса, вам необходимо передать node
в apoc.do.when
, чтобы его внутренний запрос мог получить к нему доступ.
Однако на самом деле вам следует изменить свой запрос, чтобы внутренний запрос даже не нужно делать MATCH
:
CALL apoc.trigger.add(
'loadEnrollments',
"UNWIND apoc.trigger.nodesByLabel($assignedLabels, 'Enrollment') AS node
MERGE (p1:SPerson { name: node.name, cell: node.cell, created_at: node.created_at})
WITH p1, node
MATCH (c:Course {name: 'Paradigm Shifting 101'})
MATCH (n:SPerson)
WITH p1, c, node, COUNT(n) as size
CALL apoc.do.when(
size>3,
'MERGE (p1)-[:Waitlist]->(c)',
'MERGE (p1)-[:Enrolled]->(c)',
{p1: p1, c: c}
) YIELD value
DETACH DELETE node",
{ phase: 'after' }
);