![](/img/trans.png)
[英]ArangoDB - How do you refer to OLD in an upsert statement using AQB
[英]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.