本文介绍了OrientDB 使用 shortestPath() 获取边的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个关于 OrientDB 的 shortestPath() 函数的问题.如果我针对 OrientDB 查询 select shortestPath('#9:1', '#15:1', 'BOTH')
我只会得到路径的顶点.但我也想要它们之间的边缘.如何同时选择顶点和边?
I have a Question about the shortestPath() Function of OrientDB. If I Query select shortestPath('#9:1', '#15:1', 'BOTH')
against a OrientDB I just get the Vertex of the Path. But I also want the Edges between them.How can I SELECT both, the Vertex and the Edges?
推荐答案
您可以使用 javascript 函数.
You can use a javascript function.
我用过这些记录
我用过这个代码
var g=orient.getGraph();
var b=g.command("sql","select expand(shortestPath(" + start + "," + end + ", 'BOTH'))");
var list=[];
for(i=0;i<b.length-1;i++){
var rid1=b[i].getId();
var rid2=b[i+1].getId();
var query="select from e where out = " + rid1 + " and in = " + rid2 + " limit 1";
var edge=g.command("sql",query);
list.push(b[i]);
list.push(edge[0]);
if(i==b.length-2){
list.push(b[i+1]);
}
}
return list;
希望有帮助.
这篇关于OrientDB 使用 shortestPath() 获取边的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!