Home > Net >  How to Slice Array From Starting Index with the Mongo Aggregate Framework?
How to Slice Array From Starting Index with the Mongo Aggregate Framework?

Time:11-07

Using the mongo aggregation framework, how can I slice an array from a starting index of 2 without knowing the length of the array?

In javascript, you can achieve that by doing:

const array = [1, 2, 3, 4, 5, 6]
array.slice(2)
> [ 3, 4, 5, 6 ]

I tried doing the following with mongo $slice operator but it returns the first 2 elements in the array instead of returning all the items starting from index 2.

db.collection.aggregate([
  { $project: { _id: 1, array: { $slice: ['$array', 2] } } }
])

CodePudding user response:

Use the size of the array:

db.collection.aggregate([
  {$project: {_id: 1, array: {$slice: ["$array",  2, {$size: "$array"}]}}}
])

See how it works on the playground example

  • Related