ArangoDB UniqueVertexs全局,不包括第一个和最后一个顶点
我试图找到从一个朋友到另一个朋友的所有独特路径 当我使用uniqueVertices:“global”时,它只返回一条路径,因为端点被认为是全局唯一路径的一部分ArangoDB UniqueVertexs全局,不包括第一个和最后一个顶点,arangodb,Arangodb,我试图找到从一个朋友到另一个朋友的所有独特路径 当我使用uniqueVertices:“global”时,它只返回一条路径,因为端点被认为是全局唯一路径的一部分 FOR v,e,p IN 1..6 ANY "entities/foo" GRAPH "friendGraph" OPTIONS { bfs: true, uniqueVertices: 'path' } SORT e.weight ASC FILTER v._id == "entities/bar" RETURN p 有没有办法让
FOR v,e,p
IN 1..6
ANY "entities/foo"
GRAPH "friendGraph"
OPTIONS {
bfs: true,
uniqueVertices: 'path'
}
SORT e.weight ASC
FILTER v._id == "entities/bar"
RETURN p
有没有办法让唯一顶点:“全局”忽略端点?我知道没有具体的方法来做到这一点。但是有没有办法完成同样的事情呢
“路径”导致了许多结果
谢谢。为了使用全局唯一的顶点,但对于最后一个顶点,您可以手动在路径中添加最后一步,如下所示:
FOR v,e,p
IN 0..5
ANY "entities/foo"
GRAPH "friendGraph"
OPTIONS {
bfs: true,
uniqueVertices: 'global'
}
FILTER p.vertices[*]._id ALL != "entities/bar"
FOR w,f
IN 1..1
ANY v
GRAPH "friendGraph"
FILTER w._id == "entities/bar"
SORT f.weight ASC
RETURN { edges: APPEND(p.edges, [f]), vertices: APPEND(p.vertices, [w]) }
我想指出两件事:
- 您添加的
操作可能无法实现您想要的效果:它根据路径最后一条边的权重对路径进行排序SORT
- 这不会找到两个顶点之间的所有唯一路径。对于这一点,使用选项
是正确的,而且可能有很多uniqueVertices:“path”
FOR
操作返回包含目标顶点的路径“实体/条”
,现在第二个FOR
操作可以到达该路径。