Home > Back-end >  Aggregate Function is not working with parameter
Aggregate Function is not working with parameter

Time:02-02

I was getting MongoDB data. If I use the JavaScript parameter while retrieving data from MongoDB it returns null, if I type it manually it returns all the data without issue. That's working

const data = await NumbersModel.aggregate([{
  $project: {
    Datas: {
      $filter: {
        input: "$Datas",
        as: "data",
        cond: {
          $gte: ["$$data.time", 0]
        }
      }
    }
  }
}])
res.send(data)

That's not working

if (req.query.lasttimestamp === null) return res.send(`cannot be empty`)
        let lasttimestamp = req.query.lasttimestamp
        const data = await NumbersModel.aggregate([
            {
                $project: {
                    Datas: {
                        $filter: {
                            input: "$Datas",
                            as: "data",
                            cond: { $gte: [ "$$data.time", lasttimestamp ] }
                        }
                    }
                }
            }
        ])
    res.send(data)

CodePudding user response:

The values in req.query are strings. You want to convert it to a number:

let lasttimestamp = parseInt(req.query.lasttimestamp);
  •  Tags:  
  • Related