通过ArangoDB 2.8中的相同边集合进行多次遍历

时间:2015-12-17 21:38:10

标签: graph traversal arangodb aql

为Product-> Model-> Brand图表

设置一个边集合
FOR m IN INBOUND "BrandModel/49798592791" BrandModelLink
   FOR p IN INBOUND m._id BrandModelLink
RETURN { model: m, product: p }

结果 - 空。它的限制永远还是beta期?

现在我使用像

这样的自我组合
FOR m IN INBOUND "BrandModel/49798592791" BrandModelLink
   FOR plink IN BrandModelLink
      FILTER plink._to == m._id
      FOR p IN Product 
         FILTER p._id == plink._from
RETURN { model: m, product: p }

希望第一个选项适用于最终版本。

P.S。简化AQL遍历其强大而神奇的功能!

1 个答案:

答案 0 :(得分:5)

在多个遍历语句中使用相同的集合应该没有限制,无论是在beta还是之后。

SELECT TOP 1 COUNT(*)AS MaxNull FROM #tmp t JOIN #tmp t2 ON t2.id <= t.id WHERE NOT EXISTS( SELECT 1 FROM #tmp t3 WHERE t3.id BETWEEN t2.id AND t.id AND NOT t3.lvl IS NULL) GROUP BY t.id ORDER BY COUNT(*)DESC; 继续遍历似乎是一个问题。 这是测试版中的一个错误,最终将修复为2.8。

现在您可以尝试删除第二个过滤语句中的_id

_id

也可以使用完整的文档(顶点)作为遍历的起点。