朋友的朋友在ArangoDB 3.0中查询

时间:2016-07-27 13:36:58

标签: arangodb aql


我想使用 AQL

撰写“朋友的朋友”遍历

我有一个名称集合:用户和一个名为 Conatct 的边缘集合。

我的 Conatct 文件:

enter image description here


我还阅读了在ArangoDb中实现朋友朋友的this article,但是这篇帖子使用的是使用GRAPH_NEIGHBORS()函数的ArangoDB较低版本的函数。

在ArnagoDB 3.0(最新版本)中, GRAPH_NEIGHBORS()功能已被删除!

现在,如何在ArnagoDB 3.0中使用Aql实现fof?

非常感谢

1 个答案:

答案 0 :(得分:2)

graph functions have been removed,因为有更强大,更灵活,更高效的native AQL traversal,它是2.8引入的,并针对3.0版进行了扩展和优化。

要检索朋友的朋友,需要从有问题的用户开始遍历深度= 2的遍历:

LET user = DOCUMENT("User/@9302796301")
LET foaf = (
  FOR v IN 2..2 ANY user Contact
    RETURN v // you might wanna return the name only here
)
RETURN MERGE(user, { foaf } )

加载_key = @9302796301的用户的文档并将其分配给变量user。它用作最小和最大深度为2的遍历的起始顶点,使用集合Contact的边缘并忽略它们的方向(ANY;也可以是INBOUND或{{ 1}})。朋友文档的朋友在此示例(OUTBOUND)中完全返回,并使用属性键v和变量user的值与"foaf"文档合并。

这只是一个如何遍历图形以及如何构造结果集的简单示例。当然还有很多选择。