Cypher Neo4J - CASE Expression con MERGE
Estoy tratando de implementar la lógica en Cypher donde, en función de una condición particular (CASE
Declaración), crearía algunos nodos y relaciones; el código es el siguiente
MATCH (g:Game)-[:PLAYER]->(u:User)-[r1:AT]->(b1:Block)-[:NEXT]->(b2:Block)
WHERE g.game_id='G222' and u.email_id = '[email protected]' and b1.block_id='16'
SET r1.status='Skipped', r1.enddate=20141225
WITH u, b2,b1, g, r1
SET b1.test = CASE b2.fork
WHEN 'y' THEN
MERGE (u)-[r2:STAGE {startdate:20141225, enddate:'99999999', status:'InProgress'}]->(b2 {fork:'fail'}) RETURN 1
ELSE
MERGE (u)-[r2:STAGE {startdate:20141225, enddate:'99999999', status:'InProgress'}]->(b2) RETURN 2
END
WITH u, g
MATCH (u)-[:TIME]->(h:Time)<-[:TIME]-(g)
SET h.after = 0
SET h.before = h.before + 1
En esta consulta hay unmerge
declaración dentro delWHEN 'y' THEN
, esta consulta arroja un error:
Entrada no válida ']': espacio en blanco esperado o un patrón de relación (línea 7, columna 82) "FUSIÓN (u) - [r2: ETAPA {fecha de inicio: 20141225, fecha de finalización: '99999999', estado: 'InProgress'}] -> ( b2 {fork: 'fail'}) RETURN 1 "
Básicamente estoy tratando de crear una relación basada en una propiedad, es decir, unMERGE
Dentro de unCASE
declaración, intenté diferentes maneras de hacer que esto funcione como hacer un retorno para que el caso cuando devuelva algún valor, etc. pero nada funcionó hasta ahora.
¿Cuál podría ser el problema con esta consulta?