openCypher эквивалент повторения Gremlin... до цикла

Используя набор данных о воздушных маршрутах , следующий запрос Gremlin найдет пять маршрутов между Остином (AUS) и Веллингтоном (WLG).

      g.V().has('code','AUS').
  repeat(out('route').simplePath()).
  until(has('code','WLG')).
  limit(5).
  path().
    by('code')

который возвращает пути (маршруты) с отображаемым кодом каждого аэропорта:

      1   path[AUS, DFW, SYD, WLG]
2   path[AUS, IAH, SYD, WLG]
3   path[AUS, IAH, AKL, WLG]
4   path[AUS, LAX, SYD, WLG]
5   path[AUS, LAX, MEL, WLG]

В openCypher аналогичный запрос можно написать в духе

      MATCH p=(a:airport {code: 'AUS'})-[:route*]->(w:airport {code: 'WLG'})
RETURN p
LIMIT 5

Но это возвращает все свойства для всего пути (узлы и ребра). Есть ли простой способ вернуть результат, напоминающий вывод запроса Gremlin?

Запросы выполнялись с использованием Amazon Neptune, который позволяет выполнять запросы Gremlin и openCypher к одним и тем же данным, а также с использованием записных книжек с графическими блокнотами.

0 ответов

Другие вопросы по тегам