在 AQL 中组合文档列表?
Combining a list of documents in AQL?
我有一个文档列表,想将它们合并成一个文档。
Arango 的文档说你可以像这样合并两个文档:
arangosh [EC]> db._query('RETURN MERGE({foo: "bar"}, {fizz: "buzz"})', {}).toArray()
[
{
"foo" : "bar",
"fizz" : "buzz"
}
]
但是合并函数不接受列表:
arangosh [EC]> db._query('RETURN MERGE([{foo: "bar"}, {fizz: "buzz"}])', {}).toArray()
JavaScript exception in file '/usr/share/arangodb/js/client/modules/org/arangodb/arangosh.js' at 104,11: [ArangoError 1541: invalid number of arguments for function 'MERGE()', expected number of arguments: minimum: 2, maximum: 65536 (while parsing)]
! throw new ArangoError(requestResult);
如何在 AQL 中合并文档?
我认为可以使用 APPLY()
来完成。
APPLY()
将函数名称作为其第一个参数。第二个参数是这个函数的参数数组。然后它将调用该函数并使数组元素单独调用参数:
RETURN APPLY("merge", [{foo: "bar"}, {fizz: "buzz"})
我有一个文档列表,想将它们合并成一个文档。 Arango 的文档说你可以像这样合并两个文档:
arangosh [EC]> db._query('RETURN MERGE({foo: "bar"}, {fizz: "buzz"})', {}).toArray()
[
{
"foo" : "bar",
"fizz" : "buzz"
}
]
但是合并函数不接受列表:
arangosh [EC]> db._query('RETURN MERGE([{foo: "bar"}, {fizz: "buzz"}])', {}).toArray()
JavaScript exception in file '/usr/share/arangodb/js/client/modules/org/arangodb/arangosh.js' at 104,11: [ArangoError 1541: invalid number of arguments for function 'MERGE()', expected number of arguments: minimum: 2, maximum: 65536 (while parsing)]
! throw new ArangoError(requestResult);
如何在 AQL 中合并文档?
我认为可以使用 APPLY()
来完成。
APPLY()
将函数名称作为其第一个参数。第二个参数是这个函数的参数数组。然后它将调用该函数并使数组元素单独调用参数:
RETURN APPLY("merge", [{foo: "bar"}, {fizz: "buzz"})