У меня есть два узла в базе данных, arrival_airport
и departure_airport
, и у меня есть 1 связь между обоими аэропортами.
Итак, когда я хочу выбрать все рейсы между двумя пунктами назначения (BOJ-> SFX), я делаю следующее:
MATCH (da:Departure_Airport {airport:'BOJ'})-[f:FlightInfo]->(aa:Arrival_Airport {airport: 'SFX'})
RETURN f, da, aa
Вопрос в том, как я могу применить FlightInfo несколько раз, взаказать также все перелеты с ногами?(например: BOJ-> FRA-> SFX)
Возможно, запрос должен выглядеть примерно так (со звездочкой):
MATCH (da:Departure_Airport {airport:'BOJ'})-[f:FlightInfo]*->(aa:Arrival_Airport {airport: 'SFX'})
RETURN f, da, aa
ОБНОВЛЕНИЕ - Решение
Так что спасибо за все ответы и комментарии.Мне нужно было правильно наладить отношения между аэропортами.Таким образом, мой запрос на импорт в аэропорт и автоматическое создание отношений (полетов) выглядит следующим образом:
USING PERIODIC COMMIT 1000
LOAD CSV FROM "file:///airports.csv" AS line FIELDTERMINATOR ";"
MERGE (departure_airport: Airport {name:line[0]})
MERGE (arrival_airport: Airport {name: line[1]})
MERGE (departure_airport)-[f:Flight {departure_time:line[2], arrival_time:line[3], carrier_code:line[4], service_class:line[5], overall_conti:line[6]}]-(arrival_airport)
ON CREATE SET departure_airport.name=line[0],arrival_airport.name=line[1], f.departure_time=line[2], f.arrival_time=line[3], f.carrier_code=line[4]
В результате вы сможете сопоставлять рейсы, как было дано ниже