Database

[{"key":1,"created_at":ISODate("2023-04-02T13:53:19.779Z")},{"key":2,"created_at":ISODate("2023-03-02T12:53:19.779Z")},{"key":3,"created_at":ISODate("2023-01-02T12:53:19.779Z")}]

Query

db.collection.aggregate([{$group:{_id:{$dateTrunc:{date:"$created_at",unit:"month"}},count:{$count:{}}}},{$densify:{field:"_id",range:{step:1,unit:"month",bounds:[ISODate("2022-05-01"),ISODate("2023-04-01")]}}},{$fill:{output:{count:{value:0}}}},{$project:{by_month:{k:{$dateToString:{format:"%Y-%m",date:"$_id"}},v:"$count"}}},{$group:{_id:null,by_month:{$push:"$by_month"}}},{$project:{_id:0,timeline:{by_month:{$arrayToObject:"$by_month"}}}}])

Result