猫鼬变量排序

时间:2015-10-16 00:10:03

标签: javascript node.js mongodb mongoose

我想根据用户输入的变量进行排序。我有这样的事情:

var find = Record.find(query);

以下工作正常:

find.sort({age: 1});

按年龄分类。我想做以下事情:

find.sort({sortField: 1});

我也试过这个:

find.sort[sortField] = 1;

没有运气。是否可以使用传入的字符串变量设置排序?

2 个答案:

答案 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);