我收到了一个包含1k文档的集合,我想通过限制它只有16个文档pr页面对它们进行分页,然后使用skip方法。如何通过URL查询实现这一目标?
现在我的路线看起来像这样,但不起作用 - 我可以查询:localhost:3000 / api / feed?isActive = true,但我不能用localhost:3000 / api / feed?isActive = true& page = 16限制它,正如我想要的那样。
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
})
});
})
答案 0 :(得分:0)
您使用所有查询字符串参数作为要查询的属性:
var params = req.query;
由于您现在正在添加新的查询字符串参数page
,这将影响您的查询。在您的URL示例中,查询变为:
{
isActive : 'true',
page : '16'
}
在将req.query
用作查询文档之前,您应该删除该参数:
var page = req.query.page;
delete req.query.page;
var params = req.query;