我需要运行一个查询,该查询返回文档的总数和文档,并且可以限制和偏移。它与this和this问题类似。区别在于我在stats
参数中运行map / reduce和总计数,所以希望我不必再调用两次查询。
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 :(得分:0)
您可以将cb
包含在exec
的参数中的函数中:
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})
})