0

我希望我的数据按“createdAt”列排序。有时按升序排列,也按降序排列。我正在使用 mongo db 。

目前,我创建了具有用户数据等功能的应用程序可以按管理员请求进行排序。管理员可以按升序或降序查看数据。

我尝试了使用排序参数的选项,该参数每次都以相同的顺序为我提供数据。如何根据管理员请求更改为管理员。

请在下面查看我尝试过的内容。

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

5 回答 5

2

尝试这个

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)
});
于 2017-03-30T13:22:19.093 回答
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});
    }
});
于 2014-10-28T18:38:31.640 回答
0

你必须做这样的事情:

.sort({ createdAt: 'desc' })

在你的情况下:

var options = {};
options[request.body.sort || "createdAt"] = 'desc'; // or 'asc'    
于 2014-10-26T23:42:41.313 回答
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})
于 2017-04-06T18:43:11.410 回答
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)
    })
于 2019-10-07T08:20:55.287 回答