You need to use the $month keyword in your group. Your new Date().getMonth()
call will only happen once, and will try and create a month out of the string “$bookingdatetime”.
db.booking.aggregate([
{$group: {
_id: {$month: "$bookingdatetime"},
numberofbookings: {$sum: 1}
}}
]);