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)