猫鼬计数查询花费太多时间,需要减少时间

时间:2018-12-28 06:38:13

标签: node.js mongoose

我正在尝试获取某些文件的总数。我正在使用猫鼬计数查询。当我试图查找类似85k的文档时,这需要12秒钟。我需要将时间减少到2或3秒。 只是一个例子,可能需要计算数十万个数据。我认为这将花费太多时间。

这是我用来计算文件数量的查询

Donor.count(find_cond, function (er, doc) {
    console.log(doc, "doc")
});

当计数为1万到2万时,就可以了。如果超出的范围将花费太多时间,那就不应该了。

2 个答案:

答案 0 :(得分:0)

在要获取计数的字段上使用索引。

答案 1 :(得分:0)

您可以尝试这样的方法吗?

Donor.createIndex({field1:1, field2:1, field3:1});
Donor.find({"field1" : "val1", "field2" : "val2"}).sort({field3: -1}).limit(100000).lean().count().exec();
  1. 索引用于从数据库中快速检索数据。
  2. 可以通过最佳均等性->排序->范围索引来改善性能。
  3. 此外,使用lean()时返回的对象是纯Javascript对象。通常,在正常查询中返回猫鼬对象。 article为提高mongodb性能提供了有用的指导。