I'm trying to implement pagination with mongoose for a mongoDB collection.
The console.log(req.params.start);
correctly outputs the start value. However, the query does not start at this value — it starts from the beginning, regardless of the value.
If I change req.params.start
to a non variable number, 2
, for example — it correctly skips 2 records.
sampleRoute.route('/collection/:start').get((req, res) => {
console.log(req.params.start);
MyModel.find()
.skip(req.params.start)
.limit(2)
.exec(function (err, doc) {
if(err) { res.status(500).json(err); return; };
res.status(200).json(doc);
});
})
How can I successfully skip using a variable? Thank you.
CodePudding user response:
As req.params.start
is passed as a string, I needed to convert it to Number:
.skip(Number(req.params.start))