Arangodb:如何将MERGE_RECURSIVE()与数组一起使用

时间:2018-12-06 15:16:34

标签: arangodb aql

在AQL中,MERGE_RECURSIVE函数不能将数组作为输入。那么,如何将上述函数与上一个查询(当然是数组)的结果一起使用?

例如,如果我的查询结果输出是:

[
  {
    "John": {"city": "Berlin"}
  },
  {
    "John": {"country": "Germany"}
  }
]

我要MERGE_RECURSIVE(myResult)返回:

{
  "John": {"city": "Berlin", "country": "Germany"}
}

我只需要一种在查询的输出数组中使用MERGE_RECURSIVE的方法

1 个答案:

答案 0 :(得分:1)

如果您有一个像x = [1, 2, 3]这样的数组,但是要传递给它的函数需要每个元素作为单独的参数,那么SOME_FUNC(1, 2, 3)而不是SOME_FUNC( [1, 2, 3] ),那么就会有{{3 }}展开数组:

APPLY("SOME_FUNC", [1, 2, 3] )

这基本上类似于以下调用:

SOME_FUNC(x[0], x[1], x[2])

...,但是您可以使用APPLY()键入所有内容,并且它可以与数组中可变数量的元素一起使用。因此,您的解决方案是:

RETURN APPLY("MERGE_RECURSIVE", myResult)