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

来源:互联网 发布:上海游族网络待遇 编辑:程序博客网 时间:2024/06/11 06:01

https://segmentfault.com/q/1010000002466535


如题,在跟着这个课程,写一个博客系统,不过我想把里面用mongodb写的部分改成mongoose的方法。取文章这里遇到了些问题, 原文是这样写的。

Post.getTen = function(name, page, callback) {  //打开数据库  mongodb.open(function (err, db) {    if (err) {      return callback(err);    }    //读取 posts 集合    db.collection('posts', function (err, collection) {      if (err) {        mongodb.close();        return callback(err);      }      var query = {};      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) {            return callback(err);          }          //解析 markdown 为 html          docs.forEach(function (doc) {            doc.post = markdown.toHTML(doc.post);          });            callback(null, docs, total);        });      });    });  });};

获得总数是用来判断是否为最后一页的,但是我用mongoose写的话不知道该如何获取查询到查询结果的总数,写到这样不知道如何写了

Post.getFive = function(name,page,callback){  var querystr = {};  if(name){    querystr.name = name;  }  var query = 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);    }  })}

求大神指点下。。。


原创粉丝点击