Hi Kamal, thanks, i have seen this "construct" before and will test it.
However i am still very interested to learn how to use the call apoc.do.case() procedure to implement this .. i expect that the result might look somewhat more straightforward (to say the least) i.. and ideas how to apply that specific procedure for this use case ? Thanks Koen 2017-11-30 19:29 GMT+01:00 Kamal Murthy <ameyas...@gmail.com>: > Hi Koen, > > Create a conditional statement by using FOREACH. If there’s a value for > your condition then it loops once and set the property and if not no > property will be set. > > MERGE (server:Server { name: line.`Machine Name`, uuid: call > apoc.create.uuid() }) > > FOREACH(ignoreMe IN CASE WHEN testval=1 THEN [1] ELSE [] END | > > SET server.a="bla1", server.b="bla2" > > ) > > FOREACH(ignoreMe IN CASE WHEN testval=2 THEN [1] ELSE [] END | > > SET server.a="bla3", server.b="bla4" > > ) > > Hope this works for you. > > -Kamal > > On Thursday, November 30, 2017 at 2:25:52 AM UTC-8, koen wrote: >> >> Hi kamal. thanks, thats also how i do it now. >> >> Maybe one other question to the community >> >> Is there an example of a cypher query using a *call apoc.do.case()* >> procedure where you want to have multiple "condition,query" pairs and where >> each "query" performs multiple operations such as a property SET operations >> that are comma seperated (such as : SET node.a = "bla1", node.b = "bla2") >> .. or maybe even whole complex MATCH etc queries >> >> What would be the exact syntax for that -- i guess something like .. >> >> call apoc.do.case([testval=1,SET node.a = "bla1", node.b = "bla2"],[ >> testval=2, SET node.a = "bla3", node.b = "bla4"], SET node.a = "bla5", >> node.b = "bla6" ?????? >> >> This is the "help" info ... >> >> "apoc.do.case([condition, query, condition, query, ...], elseQuery:'', >> params:{}) yield value - given a list of conditional / writing query pairs, >> executes the query associated with the first conditional evaluating to true >> (or the else query if none are true) with the given parameters" >> >> It looks like the square brackets should be around a single condition / >> query pair ? And what about the ....elseQuery ", params:{} ... part .. >> is that correct in the help info ? >> >> thanks koen >> >> ps.. are there any plans to descibe the usage (with examples) / valid >> paramaters and their values etc of most apoc functions and procedures in a >> little more detail and consistency ? imho that would make using several >> of these more easy and also make more clear what hey are really meant for >> in some cases.. >> >> >> >> >> 2017-11-30 0:16 GMT+01:00 Kamal Murthy <amey...@gmail.com>: >> >>> Hi Koen, >>> >>> If one GUUID for one machine name, then you can create unique constraint >>> on name property and this avoids duplicate records. >>> >>> CREATE CONSTRAINT ON (s:Server) ASSERT s.name IS UNIQUE; >>> >>> After creating this constraint, I ran MERGE (server:Server { name: >>> "Test", uuid: apoc.create.uuid() } statements twice and got only one node >>> with name "Test". >>> >>> I do not know if this satisfies your requirement. >>> >>> -Kamal >>> >>> >>> On Wednesday, November 29, 2017 at 11:48:30 AM UTC-8, koen wrote: >>>> >>>> H kamal thanks, that works too. i guess the original problem was due to >>>> the "call" statement being there .. removing that seems to work although i >>>> thought i tested that already .. it also needed small rewrite to SET the >>>> uuid property to avoid duplicate record conflicts >>>> >>>> so for apoc functions no call stetement in front i guess >>>> >>>> thanks >>>> >>>> 2017-11-29 20:30 GMT+01:00 Kamal Murthy <amey...@gmail.com>: >>>> >>>>> Hi Koen, >>>>> >>>>> It is missing WITH line statement. Try this: >>>>> >>>>> USING PERIODIC COMMIT >>>>> LOAD CSV WITH HEADERS >>>>> FROM "file:///test.csv" AS line FIELDTERMINATOR ';' >>>>> *WITH line, * *apoc.create.uuid() as uid* >>>>> MERGE (server:Server { name: line.'Machine Name`, uuid: *uid* }) >>>>> >>>>> Or, >>>>> >>>>> USING PERIODIC COMMIT >>>>> LOAD CSV WITH HEADERS >>>>> FROM "file:///test.csv" AS line FIELDTERMINATOR ';' >>>>> *WITH line* >>>>> MERGE (server:Server { name: line.'Machine Name`, uuid: >>>>> *apoc.create.uuid()* }) >>>>> >>>>> I prefer the first one. >>>>> >>>>> -Kamal >>>>> >>>>> On Wednesday, November 29, 2017 at 10:45:42 AM UTC-8, koen wrote: >>>>>> >>>>>> Hi, when using the following simple cypher query with the apoc >>>>>> function apoc.create.uuid() >>>>>> >>>>>> USING PERIODIC COMMIT >>>>>> LOAD CSV WITH HEADERS >>>>>> FROM "file:///test.csv" AS line FIELDTERMINATOR ';' >>>>>> MERGE (server:Server { name: line.`Machine Name`, uuid: call >>>>>> apoc.create.uuid() }) >>>>>> >>>>>> I keep getting an error message like >>>>>> >>>>>> Invalid input 'p': expected 'n/N' (line 4, column 63 (offset: 158)) >>>>>> "MERGE (server:Server { name: line.`Machine Name`, uuid: call >>>>>> apoc.create.uuid() })" >>>>>> >>>>>> >>>>>> I am running latest version of desktop, all procedures and functions >>>>>> are active and show in the browser (when running the list procedutes / >>>>>> functions command) and without the -- uuid: call apoc.create.uuid() -- >>>>>> part the query works fine >>>>>> >>>>>> Do i have to do / configure something so that i can use apoc >>>>>> functions in queries ? Or is the query syntax not ok ? >>>>>> >>>>>> Thanks Koen >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>> You received this message because you are subscribed to a topic in the >>>>> Google Groups "Neo4j" group. >>>>> To unsubscribe from this topic, visit https://groups.google.com/d/to >>>>> pic/neo4j/3OedUQ8P2i0/unsubscribe. >>>>> To unsubscribe from this group and all its topics, send an email to >>>>> neo4j+un...@googlegroups.com. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> >>>> >>>> -- >>>> >>>> Groeten / Best Regards, >>>> >>>> Koen >>>> >>> -- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "Neo4j" group. >>> To unsubscribe from this topic, visit https://groups.google.com/d/to >>> pic/neo4j/3OedUQ8P2i0/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> neo4j+un...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> >> >> -- >> >> Groeten / Best Regards, >> >> Koen >> > -- > You received this message because you are subscribed to a topic in the > Google Groups "Neo4j" group. > To unsubscribe from this topic, visit https://groups.google.com/d/ > topic/neo4j/3OedUQ8P2i0/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > neo4j+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- Groeten / Best Regards, Koen -- You received this message because you are subscribed to the Google Groups "Neo4j" group. To unsubscribe from this group and stop receiving emails from it, send an email to neo4j+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.