最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

limit 参数在 mongodb 上返回空结果

网站源码admin51浏览0评论

limit 参数在 mongodb 上返回空结果

limit 参数在 mongodb 上返回空结果

在这个节点 + Mongodb 项目上,我试图限制从数据库中取回的对象数量。 第一个查询是获取所有“特色”属性设置为“真”的对象,这工作正常,但当我为特色对象包含一个限制参数时,它只返回一个空数组。 这是参考代码:

export const getHotels = async (req, res, next) => {
  const { min, max, ...others } = req.query;
  try {
    const hotels = await Hotel.find(req.query).limit(req.query.limit);
    res.status(200).json(hotels);
  } catch (err) {
    next(err);
  }
};

这是我的要求:

localhost:4000/api/hotels?featured=true&limit=3

但是 limit 参数让它返回一个空数组。

如果我从请求中删除 limit 参数,我将获得所有特色项目,但是当将 limit 参数添加到查询中时,它返回一个空数组。

回答如下:

查询参数返回字符串值和限制取整数/数字,这就是为什么你得到空数组 现在你有两个解决方案

解决方案 1

  1. Type 将查询值转换为如下所示的整数

    const hotels = await Hotel.find(req.query).limit(parseInt(req.query.limit));
    res.status(200).json(hotels);
    
  2. 将查询值乘以初始值,将字符串更改为整数(让我取 1)

    const hotels = await Hotel.find(req.query).limit(1 * req.query.limit);
    res.status(200).json(hotels);
    
发布评论

评论列表(0)

  1. 暂无评论