Mongoose aggregate method does not work Mongoose aggregate method does not work mongodb mongodb

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);});