Mongoose aggregate method does not work
You should convert gameId string to mongodb ObjectId
in mongoose
mongoose.Types.ObjectId(gameId)
mongodb native way
new ObjectId(gameId)
Please try below code :
Collection.aggregate([{ $match: { cid: ObjectId(req.params.cid), createdAt: { $gte: new Date(req.query.startDate), $lt: new Date(req.query.endDate) } }},{ $group: { _id: { day: {$dayOfMonth: "$createdAt"}, month: {$month: "$createdAt"}, year: {$year: "$createdAt"} }, count: {$sum: 1} }}]).then(function (result) { return res.json(result);}, function (error) { return res.status(500).send(error);});