在 ArangoDB 中组合两个查询
Combining two queries in ArangoDB
我想检索连接到顶点的所有文档。我能够使用下面提到的两个不同的查询来做到这一点。
首先我的想法是利用存储在其中的信息找到一个顶点。我能够通过全文查询做到这一点:
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""
}
]
然后我使用规范 ID 使用以下查询列出所有附加到 vertex.By 的文档
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"
}
]
是否可以使用规范 ID 作为变量将两个查询合并为一个 function.Like 以提供给下一个查询。还有其他选择吗?
您可以执行以下操作:
使用子查询捕获(第一个)起始顶点,然后将子查询的结果输入另一个查询:
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
我想检索连接到顶点的所有文档。我能够使用下面提到的两个不同的查询来做到这一点。
首先我的想法是利用存储在其中的信息找到一个顶点。我能够通过全文查询做到这一点:
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""
}
]
然后我使用规范 ID 使用以下查询列出所有附加到 vertex.By 的文档
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"
}
]
是否可以使用规范 ID 作为变量将两个查询合并为一个 function.Like 以提供给下一个查询。还有其他选择吗?
您可以执行以下操作: 使用子查询捕获(第一个)起始顶点,然后将子查询的结果输入另一个查询:
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