#oracle-graph
#oracle-graph
Вопрос:
Мы пытаемся написать запрос PGQL, чтобы получить несколько переходов для выбранного узла.
Чтобы получить узлы и ребра для выбранного узла, SELECT n0.id as n0id, e0.id as e0id, n1.id as n1id FROM MATCH (n0)->[e0]->(n1) WHERE n0.id=12345
Чтобы увеличить количество узлов и ребер, приведите пример 2 перехода, ... FROM MATCH (n0)->[e0]->(n1)->[e1]->(n3) ...
однако в этом случае узлы с 1 переходом не будут возвращены.
Интересно, есть ли какой-либо способ запросить требуемые переходы для выбранного узла?
Любое решение будет оценено.
Ответ №1:
Кажется, вы ищете синтаксис PGQL для путей переменной длины:
https://pgql-lang.org/spec/1.4/#variable-length-paths
Среди этих шаблонов, я полагаю, синтаксис достижимости полезен в вашем случае.
SELECT n0.id as n0id, e0.id as e0id, n1.id as n1id
FROM MATCH (n0)->/:edge-label{1,3}/->(n1)
WHERE n0.id=12345
https://pgql-lang.org/spec/1.4/#between-n-and-m
Спасибо!