2013-04-07 66 views
0

我需要运行一个查询,该查询返回与文档一起的文档总数并且可以被限制和偏移。它类似于thisthis的问题。不同之处在于我运行map/reduce并且总数已经在stats参数中有效,所以希望我不必再次调用查询。Mongoose限制和总计数mapReduce

list: function (options, cb) { 
    ... 
    this.mapReduce(o, function (err, model, stats) { 
     console.log('# of documents: %d ', stats.counts.output); 
     model.find() 
      .limit(criteria.perPage) 
      .skip(criteria.perPage * criteria.page) 
      .exec(cb); 
    }); 
}); 

我打电话从控制器这样的list功能:

Track.list(options, function (err, docs) { 
    res.json(docs); 
}); 

是它在某种程度上可能与返回文档传递stats.counts.output控制器一起?

+0

感谢参考'stats.counts.output'。我正在寻找如何在单个查询中执行'.count()'和'.find()',至少在使用'mapReduce'时似乎是可能的。 – hvrauhal 2013-10-29 08:11:51

回答

0

你可以在参数的函数内包裹cbexec

model.find() 
    .limit(criteria.perPage) 
    .skip(criteria.perPage * criteria.page) 
    .exec(function (err, docs) { 
     cb(err, docs, stats.counts.output) 
    }); 

Track.list(options, function (err, docs, count) { 
    res.json({docs: docs, count: count}) 
})