2016-11-29 2 views
0

Например, я хочу, чтобы запросить точно этот график, начиная от Дэйва с ограничением глубины 2 enter image description hereArangodb запрос для всех отношений между подмножеством узлов ограничивается глубиной

Теперь, если я хочу, чтобы узел подключен к Дэйв с глубиной 2 Я хотел бы использовать

For v,c in 0..2 
ANY "persons/dave" knows 
OPTIONS {uniqueVertices: "global",bfs: true } 
return v 

Это возвращение:

  • Dave-Боб-Чарли-Ева-Алиса (все в графике)

Но я не знаю, как сделать запрос, чтобы вернуть правильный набор отношений, который является:

  • Евы Алисе не отсутствующего
  • Если граф больше, Алиса к someoneelse бы не быть в результате

Мое текущее решение ниже, не вернется Ева к Алисе

For v,c in 1..2 
ANY "persons/dave" knows 
OPTIONS {uniqueEdges: "global",bfs: true } 
return c 

ответ

0

В этом случае Eve-to-Alice является третьим уровнем обхода, если вы начнете с Дэйва. Вы можете написать запрос:

for v, e, p in 1..3 ANY "persons/dave" knows options {uniqueEdges: "path",bfs: true} 
    return {vertex: v, edge: e, path: p} 

Это даст вам все края, в том числе и между Евой и Алисой. Отвечает ли это на ваш вопрос?

Если вам нужно ограничить это путями только между узлами второго уровня, вам необходимо создать фильтр.

+0

Эти решения не были выполнены во втором критерии, в котором, если граф больше, Alice-to-someoneelse также будет возвращен. Я хочу только края между этими наборами узлов –

Смежные вопросы