我尝试搜索类似的答案并应用了解决方案。在我看来,该解决方案似乎不起作用。我正在查询包含 60k个文档的猫鼬集合,我需要全部60k才能应用组合运算符。因此,不能应用限制。我可以通过根据某个属性多次查询来减少数据量,但这在性能方面也很昂贵。我看不到其他尝试方法。有人可以帮我吗?
我现在正在使用以下简单代码:
StagingData.find({})
.lean()
.exec(function(err, results){
console.log(results) //I don't get any output
}
当我使用时:
let data = await StagingData.find({}).lean() //it takes forever
我该怎么办?
答案 0 :(得分:1)
您可能想先应用索引,例如将某些值预先计算为单独的操作,并行处理等。为此,您可能希望跳到另一种技术,例如Elasticsearch,Spark等取决于您的代码。
您可能还想确定过程中的瓶颈:内存,处理器。尝试试验一组较短的文档,看看获得结果的速度如何。这样,您就可以推断出整个数据集需要花费多长时间。 您也可以尝试将操作分解为较小的块,并确定处理成本等。