我试图找到从一个朋友到另一个朋友的所有独特路径。
当我使用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
有没有办法拥有uniqueVertices:' global'忽略结束顶点?我知道没有办法专门做到这一点。但有没有办法完成同样的事情?
'路径'导致了许多结果。
谢谢。
答案 0 :(得分:1)
为了使用全局唯一顶点但是对于最后一个顶点,您可以像这样手动添加路径中的最后一步:
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'
是正确的,可能会有很多。