在ArangoDB中组合两个查询

在ArangoDB中组合两个查询,arangodb,aql,Arangodb,Aql,我想检索所有连接到顶点的文档。我可以使用下面提到的两个不同的查询来完成 首先,我的想法是使用存储在其中的信息来找到一个顶点。我可以通过全文查询完成: FOR doc IN spec FILTER doc.serial_no == '"12345abc"' RETURN doc RESULT [ { "_key": "3938424", "_id": "spec/3938424", "_rev": "_WP3-fvW---", "type": "spec-type-545", "name": "

我想检索所有连接到顶点的文档。我可以使用下面提到的两个不同的查询来完成

首先,我的想法是使用存储在其中的信息来找到一个顶点。我可以通过全文查询完成:

FOR doc IN spec
FILTER doc.serial_no == '"12345abc"'
RETURN doc

RESULT
[
{
"_key": "3938424",
"_id": "spec/3938424",
"_rev": "_WP3-fvW---",
"type": "spec-type-545",
"name": "spec-name-957",
"serial_no": ""12345abc""
 }
 ]
然后,我使用spec ID列出了附加到顶点的所有文档

FOR v IN 3 ANY 'spec/3938424'
belongs_to
RETURN v

RESULT:
[
{
"_key": "3937935",
"_id": "device/3937935",
"_rev": "_WQIeBTy---",
"type": "device-type-330",
"name": "Device iNH-SL",
"_children": 1,
"_parent": "unassigned"
}
]

是否可以将这两个查询组合成一个函数。例如,使用spec ID作为变量输入下一个查询。是否有其他选项可以执行此操作。

您可以执行以下操作: 使用子查询捕获(第一个)起始顶点,然后将子查询的结果输入到另一个查询中:

LET startVertex = (
  FOR doc IN spec
    FILTER doc.serial_no == '"12345abc"'
    LIMIT 1
    RETURN doc._id
)[0]

FOR v IN 3 ANY startVertex belongs_to 
  RETURN v