Gremlin запросить cosmosDB, чтобы найти соединение - PullRequest
0 голосов
/ 04 мая 2020

У меня есть график, смоделированный таким образом. A - calls('for', 'Item1') -> B - calls('for', 'Item1') -> C - calls('for', 'Item1') -> D. A вызывает B для Item1 (свойство края). B calls C и C calls D. В графе могут быть и другие цепочки, в которых есть вершинный вызов D для Item1. Как я могу определить все такие цепочки? Все способы, которыми D можно назвать Item1.

Извиняюсь, если вопрос слишком базовый c. Мои знания по графику очень минимальны, и я использую cosmosDB для моделирования этого.

1 Ответ

0 голосов
/ 05 мая 2020

Полагаю, я бы начал с "D" и следовал по пути "Item1", используя repeat(). Предполагая, что «D» является фактическим T.id (идентификатор элемента):

g.V("D").repeat(inE('calls').has('for','Item1').outV()).emit().path()

Выше приведено начало такого запроса. Возможно, вам понадобится завершающее условие для этого repeat() l oop и методы, позволяющие избежать циклов (то есть simplePath()), если ваш граф содержит такие вещи, чтобы вы могли избежать бесконечных обходов по таким путям.

...