我想使用 AQL
我有一个名称集合:用户和一个名为 Conatct 的边缘集合。
我的 Conatct 文件:
我还阅读了在ArangoDb中实现朋友朋友的this article,但是这篇帖子使用的是使用GRAPH_NEIGHBORS()函数的ArangoDB较低版本的函数。
现在,如何在ArnagoDB 3.0中使用Aql实现fof?
非常感谢
答案 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"
文档合并。
这只是一个如何遍历图形以及如何构造结果集的简单示例。当然还有很多选择。