попробуйте этот запрос:
traverse both() from YourClass while both('your_edge_class').size() = 0 and $depth <= 25
поэтому ход не будет проходить по вершинам, связанным с ребром/ребрами, которые вы указали
Редактировать:
Учитывая следующий пример графика и предполагая, что вам не нужны ребра type1
и type2
, хотите ли вы, чтобы узлы 1,2,3,4,5 и 8 были соединены с ребром type 3
, или вы хотите избежать всех вершины связаны также с type 1
и type 2
?
![введите здесь описание изображения](https://i.stack.imgur.com/sBWGv.png)
Редактировать:
Вы можете использовать эту функцию javascript с тремя параметрами (rid, maxDepth, excludeEdges)
var g=orient.getGraph();
var result=[];
var current=[];
var next=[];
var listEdges=excludeEdges.substring(1,excludeEdges.length-1).split(",");
var root=g.command('sql','select from '+rid);
current.push(root[0]);
var step=1;
while(current.length>0 && step<=maxDepth){
for(i=0;i<current.length;i++){
getVertex(current[i],"OUT");
getVertex(current[i],"IN");
}
change();
step++;
}
return result;
function change(){
current=[];
for (index=0;index<next.length;index++)
current.push(next[index]);
next=[];
}
function getVertex(start,direction){
var edgeDir="outE()";
var reverseDirection="in";
if(direction=="IN"){
edgeDir="inE()";
reverseDirection="out";
}
var edges=g.command("sql","select expand("+edgeDir +") from "+start.getId());
for(h=0;h<edges.length;h++){
var found=false;
for(m=0;m<listEdges.length;m++){
if(edges[h].getProperty("@class")==listEdges[m]){
found=true;
break;
}
}
if(found==false){
var vertex=g.command("sql","select expand("+ reverseDirection + ") from " +edges[h].getId());
for(j=0;j<result.length;j++){
if(result[j].getId().toString().equals(vertex[0].getId().toString()) ||
vertex[0].getId().toString().equals(rid)){
found=true;
break;
}
}
if(found==false){
result.push(vertex[0]);
next.push(vertex[0]);
}
}
}
}
Используя следующую команду
select expand(result) from (select myFunction("#9:1",25,"[type1,type2]") as result)
person
LucaS
schedule
09.12.2015
WHILE ... and $depth <= 25
) вместо использования MAXDEPTH. - person peak   schedule 10.12.2015