我如何将两个返回变量的输出组合成一个在ArangoDB?



初学ArangoDB:

我有两个输出存储在两个变量中,例如:ab.
变量ab中的项目结构完全相同,但数据不同。示例如下:

a = {
"user": "Thor Odinson",
"city": "New York",
"action": "Lives"
}
b = {
"user": "Thor Odinson",
"city": "New York",
"action": "Childhood"
}

我如何将两个变量的输出组合成一个如下所示的输出?

{
"user": "Thor Odinson",
"city": "New York",
"action": ["Lives", "Childhood"]
}

理想情况下,以user和city作为公分母组合两个文档,并将action合并到一个数组中?不确定Arango本身是否有这样的功能,但任何对正确方向的帮助也将是很大的帮助!
我愿意在我的代码中编写逻辑,但我希望尽可能避免这种情况。

我一直在玩COLLECT,UNIONMERGE,但没有运气。

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}

最新更新