[英]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.