我如何使用Mongoose和MongoDB进行分页

时间:2019-06-29 20:44:39

标签: node.js mongoose react-hooks mern

我一直在阅读帖子,说不要使用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错误。

谢谢!

0 个答案:

没有答案