AQL 如何将文档收集到集合名称下的数组中?

AQL how to collect documents into arrays under their collection name?

在回答之前 时展示了如何在其集合名称下收集文档,但有一个明确的限制,即每个集合仅查询 returns 一个文档。

@CoDEmanX 问如果查询 returns 同一个集合的多个文档怎么办?

将不得不修改查询以使用聚合:

FOR doc IN ANY "vertex/key" edge_collection
COLLECT collection = PARSE_IDENTIFIER(doc).collection INTO collected
RETURN MERGE({
    [collection]: collected[*].doc
})
  • 按集合名称对文档进行分组COLLECT collection = PARSE_IDENTIFIER(doc).collection INTO collected
  • 表单文档,集合名称为属性,集合文档数组为值{ [collection]: collected[*].doc }
  • 将结果合并到单个文档中