参数在 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
Type 将查询值转换为如下所示的整数
const hotels = await Hotel.find(req.query).limit(parseInt(req.query.limit)); res.status(200).json(hotels);
将查询值乘以初始值,将字符串更改为整数(让我取 1)
const hotels = await Hotel.find(req.query).limit(1 * req.query.limit); res.status(200).json(hotels);
更多推荐
limit 参数在 mongodb 上返回空结果
发布评论