我使用Mongoose从MongoDB获取数据。这是我的模型。
var EmployeeSchema = new Schema({
name: String,
viewCount: { type: Number, default: 0 },
description: {
type: String,
default: 'No description'
},
departments: []
});
我需要找到前5名员工,其中count(viewCount)是按名称排列的最高顺序。
我正在考虑通过使用find() &然后读取viewCount属性&产生结果。
这里只需要.sort()
和.limit()
:
Employee.find().sort({ "viewCount": -1, "name": 1 }).limit(5)
.exec(function(err,results) {
});
这是viewCount之后按名称排序的视图中排名前5位的雇员。
如果你想在最后的五项中按"name"排序,那么就对结果进行排序:
Employee.find().sort({ "viewCount": -1, "name": 1 }).limit(5)
.exec(function(err,results) {
// sort it by name
results.sort(function(a,b) {
return a.name.localeCompare(b.name);
});
// do something with results
});
您可以按查看次数排序,并将搜索结果限制为5。
在代码中可能像这样:
Employee
.find()
.sort([['viewCount',-1], ['name',-1]])
.limit(5)
.exec(function(err, results){
//do something with the results here
});