cancel
Showing results for 
Search instead for 
Did you mean: 

Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.

Return query result values in apoc.periodic.iterate

Is there a way to return a query result value while using a apoc.periodic.iterate statement?

call apoc.periodic.iterate ('

UNWIND $input as input

WITH input

MATCH (b:Node1) 
WHERE b.prop1 = input.prop1
AND substring(b.prop2,0,10) = "2021-09-08"

WITH input, b
MATCH (c:Node2 {prop3:b.prop3})

RETURN 
b.prop4 as prop4,
b.prop3 as prop3,
c.prop2 as prop2,
input

','

WITH input, prop4, prop3, prop2
MERGE (a:NodeA {prop1:prop4})

SET a.prop2 = "ABC"
SET a.prop3 = prop3
SET a.prop4 = prop2
SET a.prop5 = input.prop1
SET a.prop6 = input.prop2
SET a.date = "2021-09-09"

FOREACH (
_ IN CASE WHEN input.prop10 = "low" THEN [1] END |
SET a:NodeB
)
FOREACH (
_ IN CASE WHEN input.prop10 <> "low" THEN [1] END |
SET a:NodeC
)
FOREACH (
_ IN CASE WHEN input.error IS NOT NULL OR input.errorCode <> 200 OR input IS NULL THEN [1] END |
SET a:NodeD
SET a.errorCode = input.errorCode
SET a.errorDesc = input.error
)
RETURN input.prop1 as prop1,
input.prop2 as prop2
',
{batchSize:100, parallel:true, params:{input:$input}}
)

Would it be possible to get input.prop1 and input.prop2 as a result of the apoc.periodic.iterate statement?

1 ACCEPTED SOLUTION

No, it's not currently possible, the procedure was designed for batch processing only, return values aren't handled.

View solution in original post

3 REPLIES 3

No, it's not currently possible, the procedure was designed for batch processing only, return values aren't handled.

Hi Andrew ,

Is it possible now to return property name in  periodic iterate statement ??

call apoc.periodic.iterate(" MATCH (n:CONTAINER) WHERE n.MARKFORDEL = 'Y' AND n.EQUIP_TYPE IN [ 'MDS']
WITH n.EQUIP_NAME AS EN , n.EQUIP_TYPE AS ET , n.EQUIP_PKEY AS EP order by EP DESC LIMIT 1
MATCH (p:PORT) WHERE p.PORT_CI_NAME STARTS WITH EN
WITH DISTINCT EN , EP , p
return EN , p.PORT_CI_NAME order by EP DESC", "DETACH DELETE p" , {batchSize:1}) yield batches, total return "DELETION" , batches, total;