mongoose如何取得全部结果数量并只提取部分结果

如题,在跟着这个课程,写一个博客系统,不过我想把里面用mongodb写的部分改成mongoose的方法。取文章这里遇到了些问题,原文是这样写的。
Post.getTen=function(name,page,callback){
//打开数据库
mongodb.open(function(err,db){
if(err){
returncallback(err);
}
//读取posts集合
db.collection('posts',function(err,collection){
if(err){
mongodb.close();
returncallback(err);
}
varquery={};
if(name){
query.name=name;
}
//使用count返回特定查询的文档数total
collection.count(query,function(err,total){
//根据query对象查询,并跳过前(page-1)*10个结果,返回之后的10个结果
collection.find(query,{
skip:(page-1)*10,
limit:10
}).sort({
time:-1
}).toArray(function(err,docs){
mongodb.close();
if(err){
returncallback(err);
}
//解析markdown为html
docs.forEach(function(doc){
doc.post=markdown.toHTML(doc.post);
});
callback(null,docs,total);
});
});
});
});
};
获得总数是用来判断是否为最后一页的,但是我用mongoose写的话不知道该如何获取查询到查询结果的总数,写到这样不知道如何写了
Post.getFive=function(name,page,callback){
varquerystr={};
if(name){
querystr.name=name;
}
varquery=Post.find(querystr).skip((page-1)*5).limit(5);
query.sort({time:-1});
query.exec(function(err,results){
if(err){
console.log(err);
}
else{
results.forEach(function(doc){
doc.post=markdown.toHTML(doc.post);
});
console.log(total);
callback(null,results,total);
}
})
}
求大神指点下。。。
一只名叫tom的猫
浏览 1252回答 2
2回答

回首忆惘然

Mongoose里面是使用Model#count来获得数量的。看起来你这里的Post应该就是个model吧,使用Post.count加上合适的条件就行了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript