【发布时间】:2018-04-19 10:56:45
【问题描述】:
我已经成功地为我的 API 实现了 GET 和 DELETE 方法(在 Postman 上的 GET localhost:4000/users/api,DELETE localhost:4000/users/api 工作正常)。
我现在要实现的是指定每个特定字段的排序顺序,其中 1 为升序,-1 为降序。例如,
如果我做 localhost:4000/api/users?sort = { fieldName : 1 }
这将返回按“fieldName”排序的用户列表。
到目前为止我所做的是:
router.get('/', function(req, res) {
let obj = JSON.parse(req.query.sort)
user
.find({})
.sort(obj)
.exec(function(err, users) {
if(err){
res.status(404).send({
message: err,
data: []
});
} else {
res.status(200).send({
message: 'OK',
data: users
});
}
});
});
这适用于正常排序,但我想知道如何使用 -1 和 1 指定升序和降序。
编辑:
router.get('/', function(req, res) {
var count = req.query.count;
var sorting = req.query.sort;
//let obj = JSON.parse(sorting)
let obj = {}
obj[fieldname] = req.query.sort.fieldName == '1' ? 1:-1
if(sorting != null) {
user
.find({})
.sort(obj)
.exec(function(err, users) {
if(err){
res.status(404).send({
message: err,
data: []
});
} else {
res.status(200).send({
message: 'OK sorted',
data: users
});
}
});
}
});
【问题讨论】: