Предположим, что моя база данных графа имеет "поток" из foo
узлов. между foo
узлами может быть любое количество bar
, bar1
, bar2
, ... barN
узлов, которые в конечном итоге подключаются к следующему foo
узлу.
Итак, все это возможно
- (a: foo) -> (: bar) -> (b: foo)
- (b: foo ) -> (: bar) -> (c: foo) -> (: bar1) -> (d: foo)
- (a: foo) -> (: bar ) -> (: bar1) -> (: bar2) -> (: barN) -> (c: foo)
et c.
Я хотел бы вернуть каждую отдельную пару foo
узлов, которые НЕ имеют других foo
узлов между ними
Для приведенных выше примеров решение должно вернуть:
Решение НЕ должно включать следующее, между которыми есть узлы foo:
Что я пробовал это возвращает все пары foo, которые соединяются, независимо от того, что находится между ними.
MATCH x=(a:foo)-[:RELTYPE*1..]->(b:foo)
RETURN a,b