【发布时间】:2018-02-05 07:08:47
【问题描述】:
我正在尝试聚合一个大型数据集,因此我将游标与聚合一起使用。但是,我找不到有关如何在不使用附加延迟的情况下实现此功能的文档。我觉得必须有一种方法可以将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