Database

db={attendances:[{"_id":"62206c873b2eaac4b15d42f9","employee":"6220624b3b2eaac4b15d42e8","createdAt":"2022-04-28T04:11:13.036Z"},{"_id":"62206b173b2eaac4b15d42f1","employee":"6220624b3b2eaac4b15d42e8","createdAt":"2022-04-28T04:22:04.573Z"},{"_id":"626cb9329a6fe1422b61d4e4","employee":"622062023b2eaac4b15d42e6","createdAt":"2022-04-30T04:21:06.965Z"},{"_id":"626e19409a6fe1422b61d4f5","employee":"622062023b2eaac4b15d42e6","createdAt":"2022-05-01T05:23:12.342Z"},{"_id":"626cb9329a6fe1422b61d4e6","employee":"622062023b2eaac4b15d42e6","createdAt":"2022-05-01T15:42:39.827Z"},{"_id":"626cb9329a6fe1422b61d4e5","employee":"622062023b2eaac4b15d42e6","createdAt":"2022-05-02T09:46:51.439Z"}],shifts:[{"_id":"626965ee9a6fe1422b61d4b1","employee":"6220624b3b2eaac4b15d42e8","date":"2022-04-28","name":"Day","isNight":false},{"_id":"626965ee9a6fe1422b61d4b2","employee":"622062023b2eaac4b15d42e6","date":"2022-04-30","name":"Night","isNight":true},{"_id":"626965ee9a6fe1422b61d4b3","employee":"622062023b2eaac4b15d42e6","date":"2022-05-01","name":"Night","isNight":true}]}

Query

db.shifts.aggregate([{$set:{date:{$dateFromString:{dateString:"$date"}},dateString:"$date"}},{$lookup:{from:"attendances",let:{employee:"$employee",date:"$date",isNight:"$isNight"},pipeline:[{$match:{$expr:{"$and":[{$eq:["$$employee","$employee"]},{$lt:[{$toDate:"$createdAt"},{$dateAdd:{startDate:"$$date",unit:"day",amount:2}}]},{$gt:[{$toDate:"$createdAt"},"$$date"]}]}}}],as:"attendances"}},{$set:{attendances:{$map:{input:"$attendances",as:"item",in:{"$mergeObjects":["$$item",{today:{$cond:[{$eq:[{$dateToString:{date:{$toDate:"$$item.createdAt"},format:"%Y-%m-%d",timezone:"Asia/Kolkata"}},"$dateString"]},true,false]}}]}}}}},{$addFields:{attendancesOverNightCount:{$reduce:{input:"$attendances",initialValue:0,in:{$add:["$$value",{$cond:[{$eq:["$$this.today",false]},1,0]}]}}}}},{$set:{attendances:{$slice:["$attendances",{$subtract:[{$size:"$attendances"},{$cond:[{$eq:["$isNight",true]},{"$subtract":["$attendancesOverNightCount",1]},"$attendancesOverNightCount"]}]}]},shifts:[{_id:"$_id",employee:"$employee",isNight:"$isNight",name:"$isNight",date:"$dateString"}]}},{$project:{shifts:1,attendances:{$map:{input:"$attendances",as:"item",in:{createdAt:"$$item.createdAt",employee:"$$item.employee",_id:"$$item._id"}}},_id:{createdAt:"$date",employee:"$employee"}}}])

Result