Hello,
I'm trying to create relations between already created nodes. I'm able to create normal relations (fixed names) without any problems but I'm not able to create relation names dynamically.
I explain:
I'm trying to replicate the model explained in this interesting website:
-
I create Airports Nodes (success):
session.run("CREATE (a: Airport {airportCode: {airportCode}, countryName: {countryName}, cityName: {cityName}})", parameters("airportCode", airportCode, "countryName", countryName, "cityName", cityName)); -
I create AirportDay Nodes (success):
session.run("CREATE (ad: AirportDay {Code: {Code}, AirportCode: {AirportCode}, DateCode: {DateCode}})", parameters("Code", code, "AirportCode", airportCode, "DateCode", dateCode)); -
I create Leg (or Flight) Nodes (success)
session.run("CREATE (l: Leg {LegCode: {LegCode}, Origin: {Origin}, Destination: {Destination}, LegFlightNum: {LegFlightNum}, FlightNum: {FlightNum}, DepartureDate: {DepartureDate}, DepartureTime: {DepartureTime}, DepartureDateTime: {DepartureDateTime}, ArrivalDate: {ArrivalDate}, ArrivalTime: {ArrivalTime}, ArrivalDateTime: {ArrivalDateTime} })", parameters("LegCode", legCode, "Origin", origin, "Destination", destination, "LegFlightNum", legFlightNum, "FlightNum", flightNum, "DepartureDate", departureDate, "DepartureTime", departureTime, "DepartureDateTime", departureDateTime, "ArrivalDate", arrivalDate, "ArrivalTime", arrivalTime, "ArrivalDateTime", arrivalDateTime)); -
I link correctly Airport & AirportDay (success):
session.run("MATCH (a:Airport), (ad:AirportDay) WHERE a.airportCode = ad.AirportCode MERGE (a)-[:HAS_DAY]->(ad)"); -
I'm trying to link AirportDay & Leg but this way, relation names are not dynamic (I would like to have the name of the destination airport +_FLIGHT instead of HAS_FLIGHT):
session.run("MATCH (ad:AirportDay), (l:Leg) WHERE ad.DateCode = l.DepartureDate MERGE (ad)-[:HAS_FLIGHT]->(l)");
My problem is that the code from this website gives an example with an embedded Neo4j database, here is the code of this website:
departureAirportDayNode.createRelationshipTo(leg, RelationshipType.withName(arrivalCity + "_FLIGHT"));
But in my case, I'm using the Neo4J Java Driver and I found no example on how to deal with my problem.
I understand that I need to build the name of the relation dynamically but how to do this... ?
Any help will be appreciated,
(I'm a beginner with Neo4J and not an expert in Java...)
Don't hesitate if any information is missing.
Martin.