Database
db={"group":[{"_id":ObjectId("6139f790f6a0af36d700c4fb"),"name":"Test Group","teams":[{"division":1,"teamId":ObjectId("62724a2effffbd4c82eafb1b")},{"division":1,"teamId":ObjectId("6139f795f6a0af373900e2f7")}]},],"team":[{"_id":ObjectId("62724a2effffbd4c82eafb1b"),"name":"Team A"},{"_id":ObjectId("6139f795f6a0af373900e2f7"),"name":"Whatever Team"}]}
Query
db.group.aggregate([{"$match":{"_id":ObjectId("6139f790f6a0af36d700c4fb")}},{"$lookup":{"from":"team","localField":"teams.teamId","foreignField":"_id","as":"teams"}},{"$unwind":"$teams"},{"$replaceRoot":{"newRoot":"$teams"}},{$sort:{_id:1}},{"$facet":{"content":[{$skip:0/** page number * page size*/},{$limit:100/** page size*/}],"total":[{$group:{_id:null,total:{$sum:1}}}],"first":[{$limit:1},{$project:{_id:0,first:{$eq:[0,0]/** pagesize == 0?*/}}}],"last":[{$skip:100/** (page number+1) * page size*/},{$limit:1}]}},{"$project":{content:1,first:{$first:"$first.first"},total:{$first:"$total.total"},last:{$eq:["$last",[]]}}}])