quiero obtener datos por tema y por grado y también algunos otros campos .................................. .................................................... .................................................... .................................................... ..........................................................
const skip = Number(page) === 1 ? 0 : Number(perPage) * (Number(page) - 1); const limit = Number(skip) + Number(perPage); let queryData: any = {};`enter code here` if (grade != null) { queryData.grade = grade; } if (subjects != null) { queryData.subjects = subjects; } let teacherData= await this.teacherModel.aggregate([ { $lookup: { from: "eclasses", localField: "_id", foreignField: "teacher", as: "classes" } }, { $lookup: { from: "courses", localField: "_id", foreignField: "teachers.id", as:"course", } }, { $project:{firstName:1, lastName:1,"classes.grade":1,"classes.subject":1,"classes.name":1,"course._id":1} } , { $match: {...queryData} }, { $facet: { TeacherRecord: [{ $skip: skip }, { $limit: limit }], metadata: [{ $count: "total" }, { $addFields: { page: page } }], }, }, ]) const totalCount = teacherData[0]?.total const getPaginationResult = PaginationHandle.getPageCount( page, perPage, totalCount ); return [ teacherData,getPaginationResult]; }```