2014-10-26 178 views
0

我想通过“createdAt”列对数据进行排序。有时按升序排列,也按降序排列。我正在使用mongo db。如何使用sails-js以降序对数据进行排序?

目前,我已经创建的应用程序具有像用户数据可以按管理要求排序的功能。管理员可以按升序或降序查看数据。

我已经尝试过使用排序参数,每次以相同的顺序给我数据。如何以管理员的每个管理员请求来更改。

请回顾下面,我已经尝试过。

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}); 
    } 
}); 

回答

0

你必须做这样的事情:

.sort({ createdAt: 'desc' }) 

你的情况:

var options = {}; 
options[request.body.sort || "createdAt"] = 'desc'; // or 'asc'  
+0

在帆JS不工作。 – 2014-10-27 18:33:37

0
var options = { 
    limit: request.body.limit || undefined, 
    skip: request.body.skip || undefined, 
    sort: request.body.sort || "createdAt desc", // Please mention here, desc or asc followed by space with  column name 
    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}); 
    } 
}); 
1

试试这个

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) 
}); 
0

更好地使用承诺。保持代码简单易懂。

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({createdAt: 0}) 
相关问题