Database

[{"key":1,"array":[1,2,3,4,5]},{"key":2,"array":[1,2]}]

Query

db.collection.aggregate([{"$addFields":{/** replace your example to 40 here*/"subarraySize":3}},{"$addFields":{"startingIndices":{"$range":[0,{"$size":"$array"},"$subarraySize"]}}},{"$project":{"slicedArray":{"$map":{"input":"$startingIndices","as":"i","in":{$slice:["$array","$$i","$subarraySize"]}}}}}])

Result