Демонстрационный документ:
{
"foo": [
{"x": [1,2,3], "y": [4,5,6], "z": [7,8,9] },
{"hello": "world" }
],
"bar": true,
"_key": "0"
}
Чтобы удалить foo[0].y
([4,5,6]
) с помощью AQL, вот несколько универсальное решение:
LET attr = "foo" // target top-level attribute
LET i = 0 // positive or negative index of target array element
LET subattr = "y" // sub-attribute to remove
LET doc = DOCUMENT("test/0")
LET before = SLICE(doc[attr], 0, i) // array elements before target
LET middle = UNSET(doc[attr][i], subattr) // remove sub-attribute from target element
LET after = i == -1 ? [] : SLICE(doc[attr], i+1) // elements after target
LET combined = APPEND(APPEND(before, middle), after)
UPDATE doc WITH { [attr]: combined } IN test
RETURN {NEW, OLD}
Для удаления "world"
вместопросто измените его на LET i = 1
и LET subattr = "hello"
.