2016-07-27 103 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

非常感謝...這是很好的工作... –