ArangoDB:是否可以在图遍历中 'fake' 边?
ArangoDB: is it possible to 'fake' edges in a graph traversal?
我有一个复杂的图表。我正在使用遍历(通过 ArangoJS)以及相当复杂的 expanderFunction 和 traversalVisitor。
对于这个遍历,我想知道是否可以在我的图中的一些节点之间创建动态关系(或 fake 关系):也就是说,基于在一个顶点的某些属性上,让遍历进行图形探索,就好像当前顶点和另一个顶点之间有一条边一样。
我试图欺骗 expander 函数,将一条假边(从当前顶点到图中另一个不相关的顶点)推入遍历数据结构,一些东西喜欢:
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;
这没有用。 (遍历选项为:方向:'outbound',策略:"depthfirst")
有更好的主意吗?
谢谢!
我认为你的代码有一点小错误:
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;
"fake-edge" _to
必须指向 unconnectedVertex._id
,而不是对象本身。
你能检查一下这是否已经解决了问题吗?
我有一个复杂的图表。我正在使用遍历(通过 ArangoJS)以及相当复杂的 expanderFunction 和 traversalVisitor。
对于这个遍历,我想知道是否可以在我的图中的一些节点之间创建动态关系(或 fake 关系):也就是说,基于在一个顶点的某些属性上,让遍历进行图形探索,就好像当前顶点和另一个顶点之间有一条边一样。
我试图欺骗 expander 函数,将一条假边(从当前顶点到图中另一个不相关的顶点)推入遍历数据结构,一些东西喜欢:
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;
这没有用。 (遍历选项为:方向:'outbound',策略:"depthfirst")
有更好的主意吗?
谢谢!
我认为你的代码有一点小错误:
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;
"fake-edge" _to
必须指向 unconnectedVertex._id
,而不是对象本身。
你能检查一下这是否已经解决了问题吗?