ArangoDB:是否有可能“伪造”'图遍历中的边?

时间:2016-02-16 09:29:39

标签: graph arangodb

我有一张复杂的图表。我正在使用遍历(通过ArangoJS)以及相当复杂的expandderFunction和traversalVisitor。

对于这次遍历,我想知道是否可以在我的图形中的某些节点之间创建动态关系(或关系):即,基于某些属性在顶点中,让遍历追求图形探索,就像当前顶点和另一个顶点之间存在边缘一样。

我试图欺骗 expandder 函数,将虚假边缘(从当前顶点到图中另一个不相关的边缘)推入遍历数据结构,如:< / p>

if (complex_criteria(vertex)) {
    var unconnectedVertexId = ... 
    var unconnectedVertex = someCollection.document(unconnectedVertexId);
    connected.push({ edge:{_id:'newId', _from:vertex._id, _to:unconnectedVertex._id}, vertex: unconnectedVertex });
}
..
return connected;

这不起作用。 (遍历选项包括:方向:&#39;出站&#39;,策略:&#34; depthfirst&#34;

有什么好主意吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

我认为您的代码存在轻微错误:

if (complex_criteria(vertex)) {
    var unconnectedVertexId = ... 
    var unconnectedVertex = someCollection.document(unconnectedVertexId);
    connected.push({ edge:{_id:'newId', _from:vertex._id, _to:unconnectedVertex._id}, vertex: unconnectedVertex });
}
..
return connected;

“假边缘”_to必须指向unconnectedVertex._id,而不是对象本身。 你能检查这是否已经解决了这个问题吗?