首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MERN分页与排序

MERN分页与排序
EN

Stack Overflow用户
提问于 2022-08-24 21:17:31
回答 1查看 72关注 0票数 0

希望你们能帮我一把。

我无法使分页正常工作。它总是对文档总数进行计数,并忽略筛选数据。例如,总共有24个文档,但是当按特定项进行筛选时,它返回一个文档,但仍然返回总页数(正如我将pageSize设置为9一样)。

请在下面找到我的代码:

代码语言:javascript
复制
router.get('/', async (req, res) => {
  try {
    const pageSize = 9;
    const page = Number(req.query.page) || 1;

    let query;
    const queryObject = { ...req.query };
    const excludeFields = ['page', 'sort', 'limit', 'fields'];
    excludeFields.forEach((el) => delete queryObject[el]);

    let queryString = JSON.stringify(queryObject);
    queryString = queryString.replace(
      /\b(gte|gt|lte|lt)\b/g,
      (match) => `$${match}`
    );

    query = Vehicle.find(JSON.parse(queryString));
    if (req.query.sort) {
      const sortBy = req.query.sort.split(',').join(' ');
      query = query.sort(sortBy);
    } else {
      query = query.sort('-createdAt');
    }

    const count = await Vehicle.countDocuments();
    const vehicles = await Vehicle.find(JSON.parse(queryString))
      .limit(pageSize)
      .skip(pageSize * (page - 1));

    if (!vehicles) {
      return res.status(200).json({ success: true, data: [] });
    }

    res
      .status(200)
      .json({ vehicles, page, totalPages: Math.ceil(count / pageSize) });
  } catch (error) {
    console.error(error.message);
    res.status(500).send('Server Error');
  }
});

你会怎么去添加功能排序到这个也请,由于某种原因排序不工作,对我呢?

非常感谢,G。

EN

回答 1

Stack Overflow用户

发布于 2022-08-24 21:38:19

获取包含countDocuments:中添加查询参数所需的筛选数据的计数的

代码语言:javascript
复制
 const count = await Vehicle.countDocuments(JSON.parse(queryString));

  1. 添加排序功能,您可以将.sort()附加到查询的末尾:

代码语言:javascript
复制
const vehicles = await Vehicle.find(JSON.parse(queryString))
      .limit(pageSize)
      .skip(pageSize * (page - 1))
      .sort(<your sort query>)

https://www.mongodb.com/community/forums/t/sorting-with-mongoose-and-mongodb/122573

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73479566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档