簡體   English   中英

使用arangodb AQB,您如何從/到/從Edge進出? 在查詢中?

[英]With arangodb AQB how do you get out/inEdges an from/toVertices? in a query?

假設從v3.x刪除的fluent query interface的以下查詢:

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

這里lst是從先前的查詢獲得的頂點的簡單列表,並且在頂點lst可以具有外向邊緣的關系其中之一是的類型knows ,和頂點由這些outEdges指出有類型的入邊works反過來

如何用AQB編寫? 兩者(AQB和fluent query interface應該重疊,這就是為什么要刪除其中一個)。 iv查看了github上的文檔但是我看不到任何有助於上述查詢的內容

到目前為止,這是我解決的問題:

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

您是正確的,它不能在AQB中表示。 我們目前正在棄用aql ,以支持JavaScript驅動程序(arangojs)和ArangoDB 2.8及更高版本均支持的aql模板處理程序: https ://docs.arangodb.com/3/Manual/Appendix/JavaScriptModules/ ArangoDB.html#the-aql-template-string-handler

使用模板字符串處理程序,可以在ArangoDB 3中編寫任意AQL查詢。如果我對它的理解正確,那么您的流利查詢應轉換為以下形式:

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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM