有了arangodb AQB,您如何从/到顶点退出/退出?在查询中?

有了arangodb AQB,您如何从/到顶点退出/退出?在查询中?,arangodb,graph-traversal,Arangodb,Graph Traversal,假设从v3.x起删除的fluent查询界面中的以下查询: var tens = graph._vertices(lst).outEdges().restrict("knows").toVertices() .inEdges().restrict("works").fromVertices().inEdges().restrict("owns") .fromVertices().toArray(); 这里的lst是一个简单的顶点列表,这些顶点是从先前的查询中获得的, 而lst中的顶点可能具有输出

假设从
v3.x
起删除的
fluent查询界面中的以下查询:

var tens = graph._vertices(lst).outEdges().restrict("knows").toVertices()
.inEdges().restrict("works").fromVertices().inEdges().restrict("owns")
.fromVertices().toArray();
这里的
lst
是一个简单的顶点列表,这些顶点是从先前的查询中获得的, 而
lst
中的顶点可能具有输出边关系,其中之一 是
类型的,这些outedge指向的顶点依次具有
类型的传入边

这将如何与AQB一起书写?这两个(AQB和
fluent查询接口
应该重叠,这就是为什么删除了一个)。
Iv查看了文档,但我没有看到任何对上述查询有帮助的内容

这是我迄今为止得出的结论:

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查询界面所期望的信息相同

这是我到目前为止所做的工作:

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查询界面所期望的信息相同

您认为这不能在AQB中表示是正确的。我们目前正在弃用AQB,转而使用JavaScript驱动程序(arangojs)和ArangoDB 2.8及更高版本支持的
aql
模板处理程序:

使用模板字符串处理程序,可以在Arangodb3中编写任意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()

你是对的,这不能在AQB中表示。我们目前正在弃用AQB,转而使用JavaScript驱动程序(arangojs)和ArangoDB 2.8及更高版本支持的
aql
模板处理程序:

使用模板字符串处理程序,可以在Arangodb3中编写任意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()