Database
[{slicingIndex:[0,4,7,10],array:[{name:1},{name:2},{name:3},{name:4},{name:5},{name:6},{name:7},{name:8},{name:9},{name:10}]}]
Query
db.collection.aggregate([{"$project":{slicingIndex:1,array:{"$map":{"input":{$slice:["$slicingIndex",1,{$size:"$slicingIndex"}]},"as":"num","in":{"$slice":["$array",{"$arrayElemAt":["$slicingIndex",{$subtract:[{"$indexOfArray":["$slicingIndex","$$num"]},1]}]},{$subtract:["$$num",{"$arrayElemAt":["$slicingIndex",{$subtract:[{"$indexOfArray":["$slicingIndex","$$num"]},1]}]}]}]}}}}}])