我有一个图(它是一棵树),由一个顶点集合和一个边集合组成。 我正在尝试进行 AQL 查询,以对象的形式返回其中一些(最大深度 2)。
我正在使用这个查询:
FOR v,e IN 0..1 OUTBOUND 'nodes/root' GRAPH 'myGraph'
OPTIONS { uniqueVertices: 'path', order: 'bfs' }
RETURN {"nodes":v, "edges":e}
但我明白了:
[
{
"nodes": {
"_key": "root",
"_id": "nodes/root",
"metadata": {}
},
"edges": null
},
{
"nodes": {
"_key": "sys-1",
"_id": "nodes/sys-1",
"metadata": {}
},
"edges": {
"_key": "sys-1-root",
"_id": "relationships/sys-1-root",
"_from": "nodes/root",
"_to": "nodes/sys-1",
"metadata": null
}
},
{
"nodes": {
"_key": "sys-4",
"_id": "nodes/sys-4",
"metadata": {}
},
"edges": {
"_key": "sys-4-root",
"_id": "relationships/sys-4-root",
"_from": "nodes/root",
"_to": "nodes/sys-4",
"metadata": null
}
}
]
我想要这样的东西:
[
{
"nodes":[
{
"_key":"root",
"_id":"nodes/root",
"metadata":{
}
},
{
"_key":"sys-1",
"_id":"nodes/sys-1",
"metadata":{
}
},
{
"_key":"sys-4",
"_id":"nodes/sys-4",
"metadata":{
}
}
],
"edges":[
null,
{
"_key":"sys-1-root",
"_id":"relationships/sys-1-root",
"_from":"nodes/root",
"_to":"nodes/sys-1",
"metadata":null
},
{
"_key":"sys-4-root",
"_id":"relationships/sys-4-root",
"_from":"nodes/root",
"_to":"nodes/sys-4",
"metadata":null
}
]
}
]
我一直在阅读 stackoverflow 中的文档和其他问题,但找不到找到方法。谢谢!
这看起来就像是为数组收缩而量身定做的箱子:
LET res = (
FOR v,e IN 0..1 OUTBOUND 'nodes/root' GRAPH 'myGraph'
OPTIONS { uniqueVertices: 'path', order: 'bfs' }
RETURN {"nodes":v, "edges":e}
)
RETURN {'nodes': res[*].nodes, 'edges': res[*].edges}