Предположим, у меня есть следующий массив:
{
data: [1, 0, 4, 0, 0, 4, 1, 3, 0, 1, 0, 2, 2, 0, 1, 1, 0, 2, 0, 4, 1, 1, 0, 1, 1, 0]
}
Если я хочу выбрать все элементы, кроме последних 3, я могу использовать предложенное решение здесь
db.collection.aggregate([
{
$project: {
"_id": 0,
"data": {
"$slice": [
"$data",
0,
{
$subtract: [ { $size: "$data" }, 3 ]
}
]
}
}
}
])
Я могу получить желаемый результат:
[1, 0, 4, 0, 0, 4, 1, 3, 0, 1, 0, 2, 2, 0, 1, 1, 0, 2, 0, 4, 1, 1, 0]
Как я могу сделать то же самое для объединенных / вложенных массивов, таких как:
{
data: [[1, 0, 4, 0, 0, 4, 1], [1, 0, 4, 0, 1, 5, 3]]
}
Чтобы выбрать все элементы, кроме последних 3 (каждого массива)?
Ожидаемый результат:
{
data: [[1, 0, 4, 0], [1, 0, 4, 0]]
}