MongoDB 有两个索引哪个查询更快

Which query faster on MongoDB with two index

我在 mongodb 中有两个索引。第一个索引字段是“字符串”,第二个索引字段是“日期”。字符串字段是部分的。为什么只有“字符串”比我用“日期”字段查询“字符串”快?我如何创建替代方案?

在 2 亿个值中:

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

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

我是分开用的

正如@R2D2 所说:

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

使用该方法使其速度更快。索引大小也几乎减少了一半。