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