关于mongodb count()的特殊条件性能优化讨论

时间:2019-05-06 11:22:15

标签: mongodb

我的收藏摘要如下:

versionInfo{
    _id,
    module:{
        name
    }
}

我的陈述是:

db.getCollection('versionInfo').find({"$and":[{"_id":{"$nin":[]}},{"module.name":{"$regex":"^coffee-sprites"}}]}).limit(10)

我已经创建了索引:

1> _id

2> module.name

外观从咖啡小球开始计数结果为8 所以我限制10个花费时间是:30秒,但我限制8个花费时间非常快。 现在,我的解决方案是在限制大小大于实际大小的情况下,将限制大小调整为当前的最大大小,前提是我已经知道了实际大小。

但是计数效果不好。

我无意间尝试了以下语句:

db.getCollection('versionInfo').find({"$and":[{"_id":{"$nin":[]}},{"module.name":{"$regex":"^coffee-sprites"}}]}).limit(10).explain('executionStats')

此语句执行速度非常快,executionStats.nReturned为8。

我很困惑,为什么这个陈述比上面的陈述要快,区别只是额外的解释。

0 个答案:

没有答案