I have two nodes user
and files
with a relationship :contains
, the relationship has a property id
which is an array, represented as
(:user)-[:contains{id:[12345]}]->(:files)
However I want to populate the property array id
with values 1111
and 14567
sequentially using Cypher
queries, I dont find any method to push values into the array.
After inserting 1111 to property id
it will be:
(:user)-[:contains{id:[12345,1111]}]->(:files)
After inserting 14567 to property id
it will be:
(:user)-[:contains{id:[12345,1111,14567]}]->(:files)
I don't know how to populate values to an property array sequentially.
Adding values to an array is analogous to incrementing an integer or concatenating a string and is signified the same way, in your case (let c
be your [c:contains {id:[12345]}]
)
c.id = c.id + 1111 // [12345,1111] c.id = c.id + 14567 // [12345,1111,14567]
or
c.id = c.id + [1111,14567] // [12345,1111,14567]
If one of the attribute is null (which could result in horrible errors):
SET n.id = coalesce(n.id, []) + n.additionalId
The coalesce goes through the comma seperated list (inside the round brackets) from left to right and skips the variables that are Null
values. So in this case if n.id
is initially Null
the coalesce would take the second parameter which is the empty array []
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With