Apply match filter but ignore first element

My app can search through a database of resources using MongoDB’s aggregation pipeline. Some of these resources are marked as sponsored via a property.

I want to show these sponsored entries first (already done) but I want to show only one of them.

What I have now is this:

  • [sponsored result #1]
  • [sponsored result #2]
  • [sponsored result #3]
  • [organic result #1]
  • [organic result #2]
  • [organic result #3]
  • […]

What I want:

  • [sponsored result #1]
  • [organic result #1]
  • [organic result #2]
  • [organic result #3]
  • […]

Below is my aggregation code (with Mongoose syntax). How can I skip elements with sponsored: true except for the first one?

[...]

const matchFilter: { approved: boolean, type?: QueryOptions, format?: QueryOptions, difficulty?: QueryOptions, language?: QueryOptions }
    = { approved: true }

if (typeFilter) matchFilter.type = { $in: typeFilter };
if (formatFilter) matchFilter.format = { $in: [...formatFilter, 'videoandtext'] };
if (difficultyFilter) matchFilter.difficulty = { $in: difficultyFilter };
if (languageFilter) matchFilter.language = { $in: languageFilter };

const aggregationResult = await Resource.aggregate()
    .search({
        compound: {
            must: [
                [...]
            ],
            should: [
                [...]
            ]
        }
    })
    [...]
    .sort(
        {
            sponsored: -1,
            _id: 1
        }
    )
    .facet({
        results: [
            { $match: matchFilter },
            { $skip: (page - 1) * pageSize },
            { $limit: pageSize },
        ],
        totalResultCount: [
            { $match: matchFilter },
            { $group: { _id: null, count: { $sum: 1 } } }
        ],
        [...]
    })
    .exec();

[...]

I just realized that I don’t actually want to filter out these other sponsored elements. Instead, I would like to treat them like organic results, meaning that I don’t want to sort them to the top. Is it possible to only move the first sponsored element to the top of the results?

I assume the solution has to do with addFields, i.e. "add field selectedForSponsoredSlot but only for the first element with sponsored: true. Then sort by selectedForSponsoredSlot.