所以我传递了一个动态变量,这是我想要排序的字段的名称。
让我们说下面的sortVariable可能等于“price”,“createdAt”,“name”等。这不起作用,我该怎么做?
function findStuff (sortVariable) {
var postings = Postings.find({
"device.name": filter.exactDevice,
}, {
sort: {
sortVariable: 1
}
});
return postings;
}
答案 0 :(得分:9)
您不能将变量用作对象文字中的键。试一试:
var findStuff = function(sortVariable) {
var sort = {};
sort[sortVariable] = 1;
return Postings.find({
'device.name': filter.exactDevice
}, {
sort: sort
});
};
答案 1 :(得分:3)
如果您使用的是节点v4,则可以使用ES6语法:
find.sort({[sortVariable]: 1});
return Postings.find({
'device.name': filter.exactDevice
}, {
sort: {[sortVariable]: 1}
});