使用Node.js迭代超过5000万个MongoDB集合logging的最快方法

我正在使用stream()迭代在Node.JS中有超过5500万条logging的集合。

它是一个简单的迭代,我检查每个logging的不同值,如果它们存在或不存在,然后计算有多lesslogging缺less这些值。 迭代复杂度为O(n)。

因此,57万GB大小的5500万条logging需要将近18个小时。 花费太多时间了吗? 我正在使用下面的查询迭代样本是55万logging的集合。

 db.collection(`sample`).find({}).stream() .on('data', (data) => { if (data.value) { count++ } }) .on('error', (error) =>{ }) .on('end', () => { console.log('success') }) 

迭代所有logging(不使用任何查询或过滤条件)的最佳方法是什么? 我想知道这样的迭代是否合适,如果没有,那么会出现什么问题呢?

为什么不直接向MongoDB发送请求?

 db.<collection>.count({value: { $exists: false }) 

因此,只有mongo会做这个工作,并返回缺less值的项目数量