使用两个索引在MongoDB上查询速度更快



我在mongodb中有两个索引。第一个索引字段是";字符串";并且第二索引字段是"0";日期";。字符串字段是部分字段。为什么比我查询";字符串";用";日期";字段"当仅";字符串";?如何创建替代方案?

价值2亿:

第一个查询:db.runCommand({explain:{count:"mycollection",query:{fruit:"apple"}}});查询结果:{executionTimeMillis:80,计数:39509}

第二个查询:db.runCommand({explain:{count:"mycollection",query:{fruit:"apple",date:{$gte:ISODate('2022-03-22T00:00:00.000+00:00')}}}});查询结果:{executionTimeMillis:3402,计数:22383}

我是单独使用的。

正如@R2D2所说:

db.mycollection.createIndex({fruit: 1,date:-1},{partialFilterExpression:{fruit:{$exists: true }}});

使用这种方法使它更快。此外,指数规模几乎下降了一半。

最新更新