2016-07-27 127 views
1


我想用AQL朋友的朋友查询的ArangoDB 3.0

写穿越“朋友的朋友”我有一个名称的集合:用户与名称Conatct一个边缘集合。

Conatct文件:

enter image description here


我也看了this article实现朋友ArangoDb的朋友,但这是后使用的ArangoDB的较低版本使用GRAPH_NEIGHBORS()函数的功能。

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

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

非常感谢

回答

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文档合并。

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

+0

非常感谢...这是很好的工作... –