-- vytovření databáze CREATE (sf:airport {name:'San Francisco', code:'sf'}), (la:airport {name:'Los Angeles', code:'la'}), (da:airport {name:'Dallas', code:'da'}), (ch:airport {name:'Chicago', code:'ch'}), (ny:airport {name:'New York', code:'ny'}), (sf)-[:DIRECT {price:50}]->(la), (la)-[:DIRECT {price:50}]->(sf), (sf)-[:DIRECT {price:275}]->(ch), (ch)-[:DIRECT {price:275}]->(sf), (da)-[:DIRECT {price:300}]->(sf), (sf)-[:DIRECT {price:300}]->(da), (ch)-[:DIRECT {price:100}]->(da), (da)-[:DIRECT {price:100}]->(ch), (ch)-[:DIRECT {price:250}]->(ny), (ny)-[:DIRECT {price:250}]->(ch), (ny)-[:DIRECT {price:225}]->(da), (da)-[:DIRECT {price:225}]->(ny), (da)-[:DIRECT {price:200}]->(la), (la)-[:DIRECT {price:200}]->(da); -- cesty ze San Francisca maximálně se 4 přestupy MATCH path=(s{code:'sf'})-[:DIRECT*1..5]->(d) -- cesty ze San Francisca maximálně se 4 přestupy -- vrací se sestavené cesty z kódů letišt a celková cena MATCH path=(s{code:'sf'})-[:DIRECT*1..5]->(d) RETURN extract(x in nodes(path) |x.code) as total_path, reduce(acc=0, x in relationships(path)| acc+x.price) as total_price; -- tři nejlevnější cesty ze San Fransica do New Yourku MATCH path=(s{code:'sf'})-[:DIRECT*1..5]->(d{code:'ny'}) RETURN extract(x in nodes(path) |x.code) as total_path, reduce(acc=0, x in relationships(path)| acc+x.price) as total_price ORDER BY total_price LIMIT 3;