我有一张复杂的图表。我正在使用遍历(通过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; )
有什么好主意吗?
谢谢!
答案 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
,而不是对象本身。
你能检查这是否已经解决了这个问题吗?