我一直在阅读帖子,说不要使用skip()和limit(),因为如果MongoDB中的条目超过1000个,它将不会扩展。
所以,我实际上在MERN方面是新手,我正在尝试实现分页,但是我什至不知道如何正确地做到这一点。这是我的问题:
router.get('/male', async (req, res) => {
const current_id = await Posts.find({}).sort({ _id: -1 }).limit(1);
// const current_id;
const N = '/api/posts/male';
const page_size = 15;
try {
const posts = await Post.find({ _id: { $lt: current_id } }).sort({ date: -1 }).skip((N - 1) * page_size).limit(page_size).
res.json(posts);
} catch (err) {
console.error(err.message);
res.status(500).send('Server error');
}
});
我从MongoDB ranged pagination中得到了这个例子,现在我只是想在我的身上实现它。链接声明的const current_id没有值,因此我假设您需要传递最后插入的id,这是发出第一个请求的原因。常量N和page_size相同(我必须给它们提供一个值)。
对此感到抱歉,但是我对此并不陌生,$ lt在find()中意味着什么?
现在,它仅在Devtools控制台中显示500错误。
谢谢!