Как рекурсивно читать связанные узлы в Cayley Graph Database?

База данных имеет узлы, которые образуют дерево. Каждый узел следует за другим с предикатом "предшествует". Я хочу написать запрос, который может прочитать все дерево с учетом начального узла.

Я пробовал Морфизм, но вывод не имеет никакого смысла для меня вообще. Возможно, из-за моего непонимания того, что на самом деле означает "морфизм"...

Любые советы или ссылки на реальные хорошие примеры будут оценены

2 ответа

Как отметил @Bruno в своем ответе, эквивалентом * в Gremlin является FollowRecursive().

var c1 = g.M().Both("precedes")
g.V("chain-1").FollowRecursive(c1).All()

Одна ключевая вещь здесь - это как часть запроса морфизма. Он кодирует, что направление предиката должно быть как In, так и Out. Я не уверен, как это отображается в шаблон запроса Neo4j

В Neo4j вы должны сделать что-то вроде этого:

MATCH p = (:Root)-[:precedes*]-()
RETURN p

Обратите внимание, что * указанный после типа отношения сделает полный поиск по всему графику. Это может вызвать проблемы с памятью.

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