Mongoose聚合游标承诺

问题描述 投票:2回答:1

我正在尝试聚合大型数据集,因此我使用游标和聚合。但是,我找不到如何在不使用额外延迟的情况下实现此目的的文档。我觉得必须有一种方法可以将aggregate().cursor().each()与聚合完成后解决的承诺结合起来。有谁知道如何做到这一点?

这段代码是有效的,基于http://mongoosejs.com/docs/api.html#aggregate_Aggregate-cursor我试图找到一种方法来做到这一点,没有额外的承诺。

aggregation = MyModel.aggregate().group({
  _id: '$name'
});

deferred = Q.defer();

aggregation.cursor({
  batchSize: 1000
}).exec().each(function(err, doc) {
  if (err) {
    return deferred.reject(err);
  }
  if (!doc) {
    return deferred.resolve(); // done
  }
  // do stuff with doc
});
return deferred.promise;
javascript node.js mongoose
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.