MongoDB:查询缓慢

时间:2019-01-29 09:58:23

标签: mongodb

我正在运行像这样的mongo查询

db.getCollection('collection').find({stringField:"stringValue", arrayField:{$exists:true, $ne:[]}}).sort({dateField:-1})

该收藏集约有10 ^ 6个文件。我在stringField和dateField上都有索引(都升序)。此查询需要〜3-4秒来运行。

但是,如果我将查询更改为以下任何一个,它将在100ms内执行

删除$ne

db.getCollection('collection').find({stringField:"stringValue", arrayField:{$exists:true}}).sort({dateField:-1})

删除$exists

db.getCollection('collection').find({stringField:"stringValue", arrayField:{$ne:[]}}).sort({dateField:-1})

删除排序

db.getCollection('collection').find({stringField:"stringValue", arrayField:{$exists:true, $ne:[]}})

使用arrayField.0

db.getCollection('foodfulfilments').find({stringField:"stringValue", "arrayField.0":{$exists:true}}).sort({dateField:-1})

对这些查询的解释并没有提供任何洞见,说明为什么第一个查询如此缓慢?

MongoDb版本3.4.18

0 个答案:

没有答案