2016-07-09 3 views
0

v3.xのように除去fluent query interface厥から次のクエリとします前のクエリ、 から得られた頂点の単純リスト及びlstの頂点は、発信エッジ関係を有していてもよい。ここでlstarangodb AQBどのように出かけるか/ inEdgesから/ toVerticesですか?クエリで?

var tens = graph._vertices(lst).outEdges().restrict("knows").toVertices() 
.inEdges().restrict("works").fromVertices().inEdges().restrict("owns") 
.fromVertices().toArray(); 

をそのうちの1つ のタイプはknowsであり、これらのoutEdgesによって指し示される頂点は、タイプworksの着信エッジを順番に持っています。

これはAQBでどのように書かれますか? 2つ(AQBとfluent query interfaceは重複していると考えられ、なぜ1つが削除されたのか)。私は、これまで働いてきたものである IVは、ドキュメントon githubに見えたが、イムは

答えて

1

これは、上記のようなクエリで役立つだろう何かを見ていない:

db._query("FOR vrt0 in @lst FOR vrt1 in OUTBOUND vrt0 knows FOR vrt2 in 
INBOUND vrt1 works FOR vrt3 in INBOUND vrt2 owns RETURN vtr3",{"@lst": lst }); 

取得した情報と等価である何私は対応するfluent query interfaceから期待しています。

1

これはAQBで表現できないということは間違いありません。我々は現在、JavaScriptのドライバ(arangojs)の両方でサポートされているaqlテンプレートハンドラの賛成でAQBを卑下する過程でとArangoDB 2.8以降です:テンプレート文字列ハンドラでhttps://docs.arangodb.com/3/Manual/Appendix/JavaScriptModules/ArangoDB.html#the-aql-template-string-handler

任意AQLクエリを記述することが可能です3. ArangoDBで正しく理解できれば、流暢なクエリは次のように解釈されるはずです。

db._query(aql` 
    FOR vertex IN ${lst} 
    FOR v1 IN OUTBOUND vertex knows 
    FOR v2 IN INBOUND v1 works 
    FOR v3 IN INBOUND v2 owns 
    RETURN v3 
`).toArray() 
関連する問題