Cayley: Как поставить предел / глубину, чтобы показать иерархию графиков в Cayley?
Мне нужна помощь, чтобы ограничить узлы, чтобы показать иерархию графов в Cayley. Как и в OrientDB, у нас есть функция глубины, чтобы ограничить иерархию любым уровнем до того же уровня вниз.
Пример: у меня есть иерархия ниже:
A DependsOn B
B RunsOn C
C DependsOn D
D ConnectedTo E
Теперь для приведенного выше примера я написал следующий запрос, чтобы показать иерархию графиков.
var path = g.M().Both();
g.V("B").FollowRecursive(path).ForEach( function(v) {
g.V(v.id).OutPredicates().ForEach( function(r){
g.V(v.id).Out().ForEach(function(t){
var node = {
source: v.id,
relation : r.id
target: t.id
}
g.Emit(node)
})
}
})
Поэтому, когда я передаю B в запрос, он возвращает мне полную иерархию, но я хочу, чтобы только A,B & C узлы отображались для 1-уровневой иерархии из B, то же самое для 2-уровневой иерархии, которую я хочу показать A,B,C & D должен показывать 2 уровня вверх и 2 уровня вниз от узла B.
1 ответ
Вы можете ограничить глубину, передав максимальную глубину в качестве второго параметра функции FollowRecursive:
g.V("B").FollowRecursive(path,2 )
Обратите внимание, что вы начинаете новый путь в foreach, который не знает о максимальной глубине внешней функции.
Более подробное обсуждение этого варианта использования можно найти в перекрестном сообщении на официальном форуме Cayley: https://discourse.cayley.io/t/cayley-0-7-0-depth-function-issue/1066