我正在apoc触发器中创建apoc过程。日志中的错误显示如下
“org.neo4j.exceptions.SyntaxException:未定义变量名称(第1行,第26列(偏移量: 25)) "MATCH(p1:SPerson { node:node.name}) CREATE (P1)-:Enrolled>(C)”
“
我的apoc触发器代码
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, node, COUNT(n) as size
CALL apoc.do.when(
size>3,'MERGE (p1)-[:Waitlist]->(c)',
'MATCH(p1:SPerson { name: node.name}) CREATE (p1)-[:Enrolled]->(c)') YIELD value
DETACH DELETE node",
{ phase: 'after' });发布于 2020-07-15 02:28:17
对于您直接提出的问题,您需要将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' }
);https://stackoverflow.com/questions/62900832
复制相似问题