我想根据用户输入的变量进行排序。我有这样的事情:
var find = Record.find(query);
以下工作正常:
find.sort({age: 1});
按年龄分类。我想做以下事情:
find.sort({sortField: 1});
我也试过这个:
find.sort[sortField] = 1;
没有运气。是否可以使用传入的字符串变量设置排序?
答案 0 :(得分:5)
假设您正在使用节点v4 +,您可以使用ES6 enhanced literal syntax支持计算属性名称:
find.sort({[sortField]: 1});
否则,您需要分几步创建排序对象:
var sort = {};
sort[sortField] = 1;
find.sort(sort);
答案 1 :(得分:0)
想出来。不能使用find.sort [sortField] = 1表示法,因为它是一个函数,需要提前完成。
var sort = {};
sort[sortField] = 1;
find.sort(sort);