Database

[{"datesUsed":{"startDate":ISODate("2022-04-02T14:42:14.223Z"),"endDate":ISODate("2022-04-09T14:42:14.223Z")},"data":[{"date":ISODate("2022-04-02"),"numOfTickets":1},{"date":ISODate("2022-04-03"),"numOfTickets":1},{"date":ISODate("2022-04-04"),"numOfTickets":2},{"date":ISODate("2022-04-06"),"numOfTickets":1},{"date":ISODate("2022-04-07"),"numOfTickets":1},{"date":ISODate("2022-04-08"),"numOfTickets":2},{"date":ISODate("2022-04-09"),"numOfTickets":1}]}]

Query

db.collection.aggregate([{$set:{datesUnused:{$range:[0,{$dateDiff:{startDate:"$datesUsed.startDate",endDate:"$datesUsed.endDate",unit:"day"}}]}}},{$set:{datesUnused:{$map:{input:"$datesUnused",in:{date:{$dateAdd:{startDate:{$dateTrunc:{date:"$datesUsed.startDate",unit:"day"}},unit:"day",amount:"$$this"}},numOfTickets:0}}}}},{$project:{data:{$filter:{input:"$datesUnused",cond:{$not:{$in:["$$this.date","$data.date"]}}}}}}])

Result