如何将 AQL 的所有结果合并到具有自定义属性的单个文档中
How to merge all results of AQL into single document with custom properties
我有一个 AQL 查询遍历图,它总是应该 return 来自一组唯一集合的固定数量的文档。
所以每个集合只会出现一次,并且只有一个文档。
我希望将它们全部合并到反映文档集合名称的属性下的单个文档中。
查询简单如:
FOR v IN ANY "vertex/key" edge_collection RETURN v
Returns 示例结果为:
[
{
"_key": "123",
"_id": "foo/123",
"_rev": "_WYhh0ji---",
"foo_attribute": "lorem impsum"
},
{
"_key": "456",
"_id": "bar/456",
"_rev": "_WYhh2ny---",
"bar_attribute": "dolor sit amet"
}
]
我希望得到这样的:
[
{
"foo": {
"_key": "123",
"_id": "foo/123",
"_rev": "_WYhh0ji---",
"foo_attribute": "lorem impsum"
},
"bar": {
"_key": "456",
"_id": "calendar/bar",
"_rev": "_WYhh2ny---",
"bar_attribute": "dolor sit amet"
}
}
]
- 为了从文档中获取集合名称,请使用
PARSE_IDENTIFIER
function 分别给出文档的集合名称和密钥
- 使用square brackets理解生成文档属性动态
- 简单合并查询结果
示例:
RETURN MERGE(
FOR v IN ANY "vertex/key" edge_collection
RETURN {[PARSE_IDENTIFIER(v).collection]: v}
)
我有一个 AQL 查询遍历图,它总是应该 return 来自一组唯一集合的固定数量的文档。 所以每个集合只会出现一次,并且只有一个文档。
我希望将它们全部合并到反映文档集合名称的属性下的单个文档中。
查询简单如:
FOR v IN ANY "vertex/key" edge_collection RETURN v
Returns 示例结果为:
[
{
"_key": "123",
"_id": "foo/123",
"_rev": "_WYhh0ji---",
"foo_attribute": "lorem impsum"
},
{
"_key": "456",
"_id": "bar/456",
"_rev": "_WYhh2ny---",
"bar_attribute": "dolor sit amet"
}
]
我希望得到这样的:
[
{
"foo": {
"_key": "123",
"_id": "foo/123",
"_rev": "_WYhh0ji---",
"foo_attribute": "lorem impsum"
},
"bar": {
"_key": "456",
"_id": "calendar/bar",
"_rev": "_WYhh2ny---",
"bar_attribute": "dolor sit amet"
}
}
]
- 为了从文档中获取集合名称,请使用
PARSE_IDENTIFIER
function 分别给出文档的集合名称和密钥 - 使用square brackets理解生成文档属性动态
- 简单合并查询结果
示例:
RETURN MERGE(
FOR v IN ANY "vertex/key" edge_collection
RETURN {[PARSE_IDENTIFIER(v).collection]: v}
)