簡體   English   中英

如何在 ArangoDB 中將兩個返回變量的 output 合並為一個?

[英]How do I combine the output of two return variables into one in ArangoDB?

這里是 ArangoDB 的初學者:

我有兩個輸出存儲在兩個變量中,例如: ab
變量ab中的項目結構完全相同,但數據不同。 示例如下:

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,但任何朝着正確方向的幫助也將是一個很大的幫助!
我願意在我的代碼中編寫邏輯,但我想盡可能避免這種情況。

我一直在玩COLLECTUNIONMERGE但沒有運氣。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM