0

我需要运行一个查询,它返回文档的总数以及文档,并且可以限制和偏移。它类似于thisthis question。不同之处在于我运行 map/reduce 并且总计数已经在stats参数中可用,所以希望我不必调用两次查询。

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与返回的文件一起传递给控制器​​?

4

1 回答 1

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})
})
于 2013-10-29T08:09:36.410 回答