node.js - 如何使用 Mongoose 进行排序和限制
问题描述
我用 Express 和 Mongoose 制作了一个评论应用程序。我有一个如下的评论模型:
var mongoose = require('mongoose');
var ReviewSchema = mongoose.Schema({
title: String,
description: String,
rating: Number
}, {
timestamps: true
}
);
module.exports = mongoose.model('Review', ReviewSchema);
在我的控制器中,我只得到如下所有评论列表。但现在我想获得一个包含 10 条最近评论和排序方式(orderby 时间戳)的列表。我怎么能用猫鼬做到这一点?请帮我!我是 NodeJS 和 Mongodb 的新手。
exports.findAll = function(req, res) {
console.log("Fetching Review...")
// Retrieve and return all reviews from the database.
Review.find(function(err, reviews){
if(err) {
console.log(err);
res.status(500).send({message: "Some error occurred while retrieving Review."});
} else {
res.send(reviews);
}
});
};
非常感谢
解决方案
这应该适合你:
Review.find()
.sort({_id: -1})
.limit(10)
.then(reviews => {
console.log(reviews)
});