Mongoose group by field in array

I’m using mongoose with Apollo.

I have the following schema:

    extend type Query {
       racePersons(personIds: [String!]): [PersonRaceByIds]
    }

    type PersonRaceByIds{
         _id: ID!
         competitors: [Competitor]
    }

    type Competitor {
        pos: String,
        person_id: String,
        person_name: String,
        age: Int,
    }

I want to group by each parameters. For example if I exec

    RaceByPersons(personIds: ["61cf111de1e449ceee12b958", "61cf111de1e449ceee12b89d"]) {
        _id
        competitors {
          person_id
          pos
        }
      }

I would want to get something like that:

    61cf111de1e449ceee12b958 [{
          {
            "_id": "60cf1129e1e449ceee12c87c",
            "competitors": [
             {
            "person_id": "60cf111de1e449ceee12b89d",
            "pos": "1"
          },
          {
            "person_id": "60cf111de1e449ceee12b958",
            "pos": "8"
          }
        ]},
      61cf111de1e449ceee12b89d [{
      {
        "_id": "60d4e8063a4409433c673ad2",
        "competitors": [
          {
            "person_id": "60cf111de1e449ceee12b89d",
            "pos": "3"
          }
        ]
      ]}

I tried using group with aggregate but I couldn’t personIds are the parameters. For example: [“61cf111de1e449ceee12b958”,“61cf111de1e449ceee12b89d”]

This is my resolver:

     .aggregate([
    {
        $match: { 'competitors.person_id': { '$in': personIds } }
    },
    {
        $project: {
            competitors: {
                $filter: {
                    input: "$competitors",
                    as: "r",
                    cond: {
                        '$or': [
                            { '$in': ['$$r.person_id', personIds] }
                        ]
                    }
                }
            },
            _id: 1,
        },
    },

Thank you.
Regards