Obtuve una colección con documentos 1k y quiero paginarlos, limitándolo con solo 16 documentos por página, luego use el método de omisión. ¿Cómo lograría eso con una consulta de URL?
En este momento, mi ruta se ve así, pero no funciona . Puedo consultar: localhost:3000/api/feed?isActive=true, pero no puedo limitarlo con localhost:3000/api/feed?isActive=true&page=16, como yo quiera.
router.get('/feed', function(req, res, next) { var params = req.query; var page = req.query.page; var pagesize = 16 Feed.find(params) .sort({'date' : 1}) .skip(pagesize*(page-1)) .limit(pagesize) .exec(function(err, result) { if (err) return next(err); res.json({ confirmation: 'success', result: result }) }); })Está utilizando todos los parámetros de cadena de consulta como propiedades para consultar:
var params = req.query; Debido a que ahora está agregando una nueva page de parámetros de cadena de consulta, esto afectará su consulta. En su ejemplo de URL, la consulta se convierte en esto:
{ isActive : 'true', page : '16' } Debe eliminar ese parámetro antes de usar req.query como un documento de consulta:
var page = req.query.page; delete req.query.page; var params = req.query;