【发布时间】:2019-08-30 07:44:02
【问题描述】:
我正在尝试在这里进行图形遍历
我在 ArangoDB 中创建了两个集合,一个文档集合 "Node" 和一个边缘集合 "Path"。我所有的节点都有一个name 属性(标签),并由边(线)连接,如上图所示。
我尝试以下查询来查找以 end 或 error 节点结尾的路径:
FOR v, e, p IN 1..10 OUTBOUND 'Node/start_0' Path
OPTIONS { bfs: true}
FILTER (v.name == "end" OR v.name == "error")
RETURN CONCAT_SEPARATOR(' - ', p.vertices[*].name)
上述查询按预期工作并返回两条路径:
["start - decide - execute1 - error"
"start - decide - execute2 - end"]
但我正在探索如何消除通过特定节点的所有相应路径。例如,我想消除所有通过 execute1 的路径。我试过这个查询:
FOR v, e, p IN 1..10 OUTBOUND 'Node/start_0' Path
OPTIONS { bfs: true}
FILTER ((v.name == "end" OR v.name == "error") AND v.name != "execute1")
RETURN CONCAT_SEPARATOR(' - ', p.vertices[*].name)
但它不起作用 - 它仍然返回两条路径。
任何人都可以帮助我如何重新构建此查询以使其仅返回一个路径,即“开始 - 决定 - 执行 2 - 结束”?
【问题讨论】: