.sort()如何在Mongoose上工作

ve7v8dk2  于 2024-01-08  发布在  Go
关注(0)|答案(1)|浏览(156)

我正在尝试使用.sort()方法对mongoose进行**排序
1x个月

let query = await Tour.find(queryStr);

if (req.query.sort) {
    const sortBy = req.query.sort.split(',').join(' ');
    query = query.sort(sort);
}

const tours = await query;

字符串
我希望得到一个基于查询参数的响应。但这是我得到的结果:

{
    "status": "fail",
    "message": "The comparison function must be either a function or undefined"
}

xlpyo6sf

xlpyo6sf1#

你可以将一个对象传递给sort()方法来确定一个特定的排序顺序,如下所示:

GET /api/v1/tours?sort=price&order=asc

const tours = await Tour.find(queryStr).sort({ 
   req.query.sort: req.query.order 
});
// .sort({ price: 'asc' });
// Sort by price ascending order

GET /api/v1/tours?sort=price&order=desc

const tours = await Tour.find(queryStr).sort({ 
   req.query.sort: req.query.order 
});
// .sort({ price: 'desc'});
// Sort by price descending order

字符串
您可以使用ascdescascendingdescending1-1作为对象中的排序顺序值。

相关问题