[英]ArangoDB: Join with nested object collection keys
需要一些有关 ArangoDB 连接查询的帮助。 我有如下文档,其中 User 包含嵌套对象(groups)
中的 Group 集合键。 当我查询用户时,我需要加入组集合并更改响应。 应该只用WITH QUERY
来完成。 请查看下面给出的示例以获得更清晰的信息。
// User Collection
[
{
_key: "312121"
name: "Ash",
groups: {
"1": ["323223", ...etc], // Group collection _keys;
"2": ["342323", ...etc] // Group collection _keys;
}
}
]
// Group Collection
[
{
_key: "323223"
name: "Group 1"
},
{
_key: "313131"
name: "Group 2"
}
]
我试过这个查询:
LET user = DOCUMENT('users/312121')
LET groups_keys = ATTRIBUTES(user.groups) // ["1", "2"]
LET list = (
FOR key IN groups_keys
LET groups = (
FOR group_key IN user.groups[key] // user.groups["1"] and so on..
LET group = DOCUMENT(CONCAT('groups/', group_key))
RETURN { group_id: group._key, name: group.name }
)
RETURN { [key]: groups }
)
RETURN MERGE(user, { groups: groups })
它以Array
返回groups
,但需要将groups
作为Object
// Current Output:
{
_key: "312121"
name: "Ash",
groups: [ // <-- This should be object, not an array
{
"1": [{ _key: "323223", name: "Group 1" }]
},
{
"2": [{ _key: "313131", name: "Group 2" }]
}
]
}
但它应该是这种格式:
// Expected Output:
{
_key: "312121"
name: "Ash",
groups: { // <-- like this
"1": [{ _key: "323223", name: "Group 1" }],
"2": [{ _key: "313131", name: "Group 2" }]
}
}
您的帮助将不胜感激!
试试这个希望这会帮助你
const newObject = {};
for (const [key, value] of Object.entries(grouped)) {
newObject[value[0].<your choice of key or>] = value
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.