Database

db={"Students":[{"date":"2021-04-29","student":"Michael","class":"A"},{"date":"2021-04-29","student":"Sarah","class":"A"},{"date":"2021-04-29","student":"Becky","class":"A"},{"date":"2021-04-29","student":"Thomas","class":"A"},{"date":"2021-04-30","student":"Michael","class":"A"},{"date":"2021-04-30","student":"Sarah","class":"A"}]}

Query

db.Students.aggregate([{$match:{$or:[{"date":"2021-04-29"},{"date":"2021-04-30"}]}},{$group:{_id:{date:"$date",class:"$class"},students:{$push:"$student"}}},{$sort:{"_id.date":1}},{$group:{_id:"$_id.class",days:{$push:"$$ROOT"}}},{$project:{_id:0,class:"$_id",name:{$setDifference:[{"$arrayElemAt":["$days.students",0]},{"$arrayElemAt":["$days.students",1]}]}}},{$unwind:"$name"}])

Result