【问题标题】:Combining two queries in ArangoDB在 ArangoDB 中组合两个查询
【发布时间】:2018-01-23 13:22:20
【问题描述】:

我想检索连接到顶点的所有文档。我能够使用下面提到的两个不同的查询来做到这一点。

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

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 列出所有附加到顶点的文档。通过使用以下查询

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 作为变量来输入下一个查询一样。有没有其他选择。

【问题讨论】:

    标签: arangodb aql


    【解决方案1】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-14
      • 2015-06-25
      • 2019-05-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多