如何削弱连接组件

时间:2017-12-19 10:55:31

标签: graph arangodb

我想在遍历图表时添加一个计数器,

for x in mycollection
for v,e,p in 1..1 any x._id graph'mygraph'
return v  

我想在遍历集合后添加一个计数器,我想在遍历加1后通过图表计数器。

let count=1
for x in mycollection
for v,e,p in 1..1 any x._id graph'mygraph'
return v
count++

我对集合的长度不感兴趣,我只是想在每次之后遍历图表,计数器加1 我写了两个未完成的js文件, 事实上,我试图弄清楚我的图中的弱连通组件,代码显示如下

'use strict';
function connectionGraph(vertex,count1,collection,graphName) {
var db = require('@arangodb').db;

      var q2 =  "        for v,e,p in 1..1 any @vt._id graph @graph \n" +
                "            update x with{label:@count} in @@ttv \n" +
                "            filter v.label!=@count \n" +
                "                 return MYFUNCTION::dfs(v,@count,@@ttv)";
 var param = {vt:vertex,count:count1,@ttv:collection,graph:graphName}

 db._query(q2,param);
}

module.exports = connectionGraph;

'use strict';
function connection(c,collection,graphName) {
var db = require('@arangodb').db;
int c = 1;
var query = "for x in @@tv \n"
"for v,e,p in 1..1 any x._id graph @graph \n" +
"   update x with{label:@count} in @@tv \n" +
" filter v.label!=@count \n" +
" return MYFUNCTION::dfs(v,@count,@@collection,@graph)";
var param = {count:c,@tv:collection,graph:graphName};
db._query(query,param);
}
module.exports = connection;

我不知道怎么写,你能帮助我吗?

我只是想找到图中弱连接的组件。

1 个答案:

答案 0 :(得分:0)

一种名为"连接组件的算法"在ArangoDB中可以找到图中弱连接的组件。 它可以用:

执行
var pregel = require("@arangodb/pregel");
pregel.start("connectedcomponents", "graphname")

该算法记录在: https://docs.arangodb.com/3.2/Manual/Graphs/Pregel/#connected-components