Arangodb:如何将 MERGE_RECURSIVE() 与数组一起使用
Arangodb: How to use MERGE_RECURSIVE() With an Array
在 AQL 中,MERGE_RECURSIVE
函数不能将数组作为输入。那么我如何将所述函数与先前查询的结果一起使用,当然,这是一个数组?
比如我的查询结果输出为:
[
{
"John": {"city": "Berlin"}
},
{
"John": {"country": "Germany"}
}
]
我想MERGE_RECURSIVE(myResult)
到return:
{
"John": {"city": "Berlin", "country": "Germany"}
}
我只需要一种方法来将 MERGE_RECURSIVE 用于查询的输出数组
如果你有一个像 x = [1, 2, 3]
这样的数组,但是你想要将它传递给的函数需要每个元素作为单独的参数,所以 SOME_FUNC(1, 2, 3)
而不是 SOME_FUNC( [1, 2, 3] )
,那么就是 APPLY() function展开数组:
APPLY("SOME_FUNC", [1, 2, 3] )
这基本上类似于下面的调用:
SOME_FUNC(x[0], x[1], x[2])
... 但是您可以用 APPLY()
键入所有内容,它可以处理数组中可变数量的元素。所以你的解决方案是:
RETURN APPLY("MERGE_RECURSIVE", myResult)
在 AQL 中,MERGE_RECURSIVE
函数不能将数组作为输入。那么我如何将所述函数与先前查询的结果一起使用,当然,这是一个数组?
比如我的查询结果输出为:
[
{
"John": {"city": "Berlin"}
},
{
"John": {"country": "Germany"}
}
]
我想MERGE_RECURSIVE(myResult)
到return:
{
"John": {"city": "Berlin", "country": "Germany"}
}
我只需要一种方法来将 MERGE_RECURSIVE 用于查询的输出数组
如果你有一个像 x = [1, 2, 3]
这样的数组,但是你想要将它传递给的函数需要每个元素作为单独的参数,所以 SOME_FUNC(1, 2, 3)
而不是 SOME_FUNC( [1, 2, 3] )
,那么就是 APPLY() function展开数组:
APPLY("SOME_FUNC", [1, 2, 3] )
这基本上类似于下面的调用:
SOME_FUNC(x[0], x[1], x[2])
... 但是您可以用 APPLY()
键入所有内容,它可以处理数组中可变数量的元素。所以你的解决方案是:
RETURN APPLY("MERGE_RECURSIVE", myResult)