bou*_*ppo 20 javascript mongoose mongodb
我对mongodb很新.我设法只得到一个基于1参数的简单排序的基本概念.如果有超过2个排序参数怎么办?例如,在由具有属性totalCuttingTime和属性的木工项目组成的数据库中favorited.
以下是一个正确的leastmongoose/mongodb函数,用于查找具有totalCuttingTime并按照highestfavoriteCounts到最低顺序 的项目列表.
var ProjectModel= mongoose.model('Project', schema);
exports.getMinCuttingTime = function(number, callback){
var leastCutTimeResult = ProjectModel.find().sort({totalCuttingTime: 1}).select({_id: 1}).limit(number).exec(
function(err, projects) {
callback(null, projects)
}
);
var result = leastCutTimeResult.find().sort({favoriteCount: -1}).select({_id: 1}).limit(number).exec(
function(err, projects) {
callback(null, projects)
}
);
return result;
}
Run Code Online (Sandbox Code Playgroud)
Joh*_*yHK 53
您需要将两个sort术语放在一个对象中:
exports.getMinCuttingTime = function(number, callback){
ProjectModel.find()
.sort({totalCuttingTime: 1, favoriteCount: -1})
.select({_id: 1})
.limit(number)
.exec(
function(err, projects) {
callback(null, projects)
}
);
};
Run Code Online (Sandbox Code Playgroud)
值得注意的是,Node.js所基于的ECMA-262标准并未指定维护对象的属性顺序,并且它只是匹配插入顺序的事实上的标准.为了消除任何疑问,您可以使用数组:
.sort([['totalCuttingTime', 1], ['favoriteCount', -1]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16314 次 |
| 最近记录: |