Итак, скажем, у меня есть коллекция пользователей и компаний. Затем у меня есть краевая коллекция с именем works_in, которая связывает пользователя с компаниями. Я использую следующие акль запроса:«unsest» Результат запроса aql в arangodb
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