How to $lookup Component documents in custom $aggregate query?

Working solution

  entities = await strapi
    .query("place")
    .model.aggregate([
      {
        $geoNear: {
          near: {
            type: "Point",
            coordinates: [latitude, longitude],
          },
          distanceField: "dist.calculated",
          maxDistance: distance,
          spherical: true,
        },
      },
      {
        $lookup: {
          from: "upload_file",
          localField: "cover",
          foreignField: "_id",
          as: "cover",
        },
      },
      {
        $unwind: "$cover",
      },
      {
        $unwind: "$links",
      },
      {
        $lookup: {
          from: "link",
          localField: "links.ref",
          foreignField: "_id",
          as: "links",
        },
      },
      {
        $limit: limit,
      },
    ])
    .exec();