exports.findall = function(req, res) {
var limit1 = req.params.limit;
var stype=req.params.sorttype;
var sdir=req.params.sortdirection;
console.log(stype);
console.log(sdir);
test.find().sort({ stype : sdir }).select('_id').select('Name').skip(limit1).limit(100).exec(function(err, results) {
res.send(results);
});
};
Mongoose动态排序改变字段和方向,我必须使用上面的代码进行排序。但是代码不能正常工作,上面的代码不能动态更改字段,所以响应不正确,请给出一些解决方案来解决这个问题。
fiddle
上面的链接我必须动态更改名称和方向,我的响应不在名称字段上排序。
答案 0 :(得分:6)
您不能将这样的对象传递给sort函数。您需要为您的用例创建一个对象。示例代码如下所示:
var sortObject = {};
var stype = req.params.sorttype;
var sdir = req.params.sortdirection;
sortObject[stype] = sdir;
test.find().sort(sortObject)
以上代码可让您在任何字段上动态排序。
答案 1 :(得分:0)
如果您使用的是节点v4,则可以使用ES6语法:
test.find().sort({[stype]: sdir});