[英]How do I combine the output of two return variables into one in ArangoDB?
這里是 ArangoDB 的初學者:
我有兩個輸出存儲在兩個變量中,例如: a
和b
。
變量a
和b
中的項目結構完全相同,但數據不同。 示例如下:
a = {
"user": "Thor Odinson",
"city": "New York",
"action": "Lives"
}
b = {
"user": "Thor Odinson",
"city": "New York",
"action": "Childhood"
}
我如何將 output 從兩個變量合並為一個,如下所示?
{
"user": "Thor Odinson",
"city": "New York",
"action": ["Lives", "Childhood"]
}
理想情況下,將兩個文檔以用戶和城市作為公分母,並將動作合並到一個數組中? 不確定 Arango 是否有這樣的 function,但任何朝着正確方向的幫助也將是一個很大的幫助!
我願意在我的代碼中編寫邏輯,但我想盡可能避免這種情況。
我一直在玩COLLECT
、 UNION
和MERGE
但沒有運氣。
將data
定義為
LET a = {
"user": "Thor Odinson",
"city": "New York",
"action": "Lives"
}
LET b = {
"user": "Thor Odinson",
"city": "New York",
"action": "Childhood"
}
LET data = [a,b]
要獲得data
所需的結果,這應該可以幫助您入門:
FOR i IN data
COLLECT user = i.user, city = i.city INTO groups = i.action
RETURN {"user": user, "city": city, "action": groups}
這給出了預期的結果:
[
{
"user": "Thor Odinson",
"city": "New York",
"action": [
"Lives",
"Childhood"
]
}
]
如果您需要對返回的變量進行更多控制,請使用KEEP
:
FOR i IN data
LET action = i.action
COLLECT user = i.user, city = i.city INTO groups KEEP action
RETURN {"user": user, "city": city, "action": groups[*].action}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.