1
假设我有收集用户和公司。然后我有名为works_in的边缘集合将用户与公司连接起来。 我使用AQL查询如下:在arangodb中“unnest”aql查询结果
FOR user IN Users
LET companies = (FOR company IN (NEIGHBORS(Users, works_in, user._id, 'outbound', [], {includeData:true}))
RETURN {company_name: company.name, company_id: company._id})
RETURN {user, companies}
什么,我得到的是:
[
{
"user": {
"_id": "Users/45645",
"_key": "45645",
"_rev": "45645",
"name": "user1",
"city": "london",
"age": 23
},
"companies": [
{
company_name: "company1",
company_id: "Companies/7897"
},
{
company_name: "company2",
company_id: "Companies/7878"
}
]
},
{
"user": {
"_id": "Users/465454",
"_key": "465454",
"_rev": "465454",
"name": "user2",
"city": "Paris",
"age": 42
},
"companies": [
{
company_name: "company1",
company_id: "Companies/7897"
},
{
company_name: "company3",
company_id: "Companies/788233"
}
]
}
]
不过,我想获得“用户”信息不嵌套在“用户”内,但如下:
[
{
"_id": "Users/45645",
"_key": "45645",
"_rev": "45645",
"name": "user1",
"city": "london",
"age": 23,
"companies": [
{
company_name: "company1",
company_id: "Companies/7897"
},
{
company_name: "company2",
company_id: "Companies/7878"
}
]
},
{
"_id": "Users/465454",
"_key": "465454",
"_rev": "465454",
"name": "user2",
"city": "Paris",
"age": 42,
"companies": [
{
company_name: "company1",
company_id: "Companies/7897"
},
{
company_name: "company3",
company_id: "Companies/788233"
}
]
}
]
我知道我可以通过一种硬编码的使其属性,如
RETURN {_id: user.id, _key:user._key, companies}
但问题是,我有很多的属性显示,而且用户可能没有某些特定属性(这样的话显示为“空”)
因此,没有人知道我怎么能“UNNEST”用户正常吗?谢谢
惊人!我不知道MERGE,非常感谢你,这正是我正在寻找的! – Dovi