Что делает запрос:
- Следовать всем исходящим ребрам в наборе ребер
edge_collec
от начальной вершины A - Затем сортировать в порядке возрастанияатрибут ребра
order
- Возвращает вершины (последнюю вершину каждого найденного пути)
Атрибут ребра e.order
имеет значение 0 или 1:
A --[ order: 1 ]--> B
A --[ order: 0 ]--> C
B --[ order: 1 ]--> D
B --[ order: 0 ]--> E
Сортировка по order
вернет C и E (0) до B и D (1).Поскольку два ребра имеют одинаковое значение, не определено, будет ли C или E возвращаться первым, а B или D - третьим.
Если вы хотите, чтобы вершины на глубине = 1 были возвращены перед вершинами на глубине= 2, но все равно сортируйте по order
на каждом уровне глубины, вы можете использовать:
SORT LENGTH(p.edges), e.order
LENGTH(p.edges)
дает текущую глубину обхода.Сначала выполняется сортировка по глубине, а затем по атрибуту ребра, и вы получите желаемый порядок результата: CBED