首页 文章

朋友的朋友在ArangoDB 3.0中查询

提问于
浏览
1

我想用 AQL 编写'friends of friend'遍历

我有一个名为Collection的集合: User 和一个名为 Conatct 的边集合 .

我的 Conatct 文件:

enter image description here

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

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

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

非常感谢

1 回答

  • 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 ;也可以是 INBOUNDOUTBOUND ) . 朋友文档的朋友在此示例( v )中完全返回,并使用属性键 "foaf" 和变量 foaf 的值与 user 文档合并 .

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

相关问题