ArangoDB 3.0 中朋友的朋友查询
friends of friend Query in ArangoDB 3.0
我想使用 AQL
编写 'friends of friend' 遍历
我有一个名为 User 的集合和一个名为 Conatct.
的边缘集合
我的联系人 文档:
我还读过 在 ArangoDb 中实现朋友的朋友,但那是 post 使用使用 GRAPH_NEIGHBORS() 函数的低版本 ArangoDB 的函数。
在ArnagoDB 3.0(最新版)中,GRAPH_NEIGHBORS()函数已被移除!
现在,我如何在 ArnagoDB 3.0 中使用 Aql 实现 fof?
非常感谢
2.8引入的graph functions have been removed, because there is the more powerful, flexible and performant native AQL traversal,并针对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
或 OUTBOUND
). friends of friends 文档在此示例中完全返回 (v
) 并与 user
文档合并,使用属性键 "foaf"
和变量值 foaf
。
这只是一个如何遍历图和如何构建结果集的简单示例。当然还有很多选择。
我想使用 AQL
我有一个名为 User 的集合和一个名为 Conatct.
的边缘集合我的联系人 文档:
我还读过
在ArnagoDB 3.0(最新版)中,GRAPH_NEIGHBORS()函数已被移除!
现在,我如何在 ArnagoDB 3.0 中使用 Aql 实现 fof?
非常感谢
2.8引入的graph functions have been removed, because there is the more powerful, flexible and performant native AQL traversal,并针对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
或 OUTBOUND
). friends of friends 文档在此示例中完全返回 (v
) 并与 user
文档合并,使用属性键 "foaf"
和变量值 foaf
。
这只是一个如何遍历图和如何构建结果集的简单示例。当然还有很多选择。