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 }
- 将结果合并到单个文档中
在回答之前
@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 }
- 将结果合并到单个文档中