Mongodb 如何使用sails js按降序对数据进行排序?
我希望我的数据按“createdAt”列排序。有时按升序,有时也按降序。我正在使用mongo db 目前,我已经创建了一个应用程序,它具有用户数据可以按管理员请求排序的功能。管理员可以按升序或降序查看数据 我尝试了使用sort参数的选项,该参数每次都以相同的顺序提供数据。如何根据管理员请求更改为管理员 请在下面回顾我已经尝试过的Mongodb 如何使用sails js按降序对数据进行排序?,mongodb,sails.js,sails-mongo,Mongodb,Sails.js,Sails Mongo,我希望我的数据按“createdAt”列排序。有时按升序,有时也按降序。我正在使用mongo db 目前,我已经创建了一个应用程序,它具有用户数据可以按管理员请求排序的功能。管理员可以按升序或降序查看数据 我尝试了使用sort参数的选项,该参数每次都以相同的顺序提供数据。如何根据管理员请求更改为管理员 请在下面回顾我已经尝试过的 var options = { limit: request.body.limit || undefined, skip: request.body.s
var options = {
limit: request.body.limit || undefined,
skip: request.body.skip || undefined,
sort: request.body.sort || "createdAt",
where: request.body.where || undefined
};
Users.find(options, function (err, Users) {
if (Users === undefined) {
return response.json({message: "No data Found"});
}
else if (err) {
return response.json({message: err});
} else {
return response.json({data: Users});
}
});
你必须这样做:
.sort({ createdAt: 'desc' })
就你而言:
var options = {};
options[request.body.sort || "createdAt"] = 'desc'; // or 'asc'
试试这个
var myQuery = Users.find(options);
// if you want to sort in descending order
myQuery.sort('createdAt DESC');
// if you want to sort in ascending order
myQuery.sort('createdAt ASC')
myQuery.exec(function callBack(err,results){
console.log(results)
});
最好使用承诺。保持代码简单易懂
let condition = {
someField: 'value',
someOtherField: 'value'
}
let limit = 10;
let skip = 10;
Users.find(condition)
.limit(limit)
.skip(skip)
.sort({createdAt: 1})
.then(result => {
// do whatever you need to do with the result here
console.log(result)
})
对于降序排序,将sort子句更改为
.sort({createdAt: 0})
在我的例子中,工作代码如下
var posts =Posts.find();
posts.sort('createdAt DESC');
posts.exec(function(err, success) {
if(err) {
res.status(500);
return res.view('500', {data: err});
}
res.json(success)
})
var posts =Posts.find();
posts.sort('createdAt DESC');
posts.exec(function(err, success) {
if(err) {
res.status(500);
return res.view('500', {data: err});
}
res.json(success)
})