Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.
03-22-2021 05:22 AM
Hi
I am ingesting some data that contains an array:
{Name: Javi, Cities_visited: [Madrid, London, Paris], Type: Travels}
I have another set of data related to the city:
{Name: London, Country: UK, Type: Places}
{Name: Madrid, Country: Spain, Type: Places}
{Name: Paris, Country: France, Type: Places}
I want to create a relation between both types of data, something like this:
MATCH (Places), (Travels)
WHERE a.Name = m.Cities_visited
CREATE(m)-[:VISITED]->(a)
RETURN a, m
However, since Cities_visited is an array, that condition can't be matched
Is there any way to create a relation if an item exists in an array, it is, name exists in Cities_visited?
Thanks
03-22-2021 07:32 AM
You should be able to do it by using:
MATCH (Places), (Travels)
WHERE a.Name IN m.Cities_visited
CREATE(m)-[:VISITED]->(a)
RETURN a, m
03-22-2021 08:00 AM
Thx! It will do it
Also, instead of having a list of cities, If I want to have a map in the array, for example cities_visited: [city: London, year: 2021}], would it be possible? I don’t think you can ingest an array of maps
Thanks
03-23-2021 08:19 AM
As you said, that currently isn't possible due to current restrictions on property types. We can use arrays of simple values for properties, but we can't have an array of maps.
You could convert the map structure into a JSON string and store that (so it becomes a list of strings), but to explore it as a structure you would need to project the JSON string out and convert it back to a map structure.
All the sessions of the conference are now available online