复合索引可以支持索引字段前缀的匹配吗?

时间:2018-01-25 09:14:09

标签: java mongodb

考虑我有以下收集结构

"mycoll":{
    "a":"",
    "b":"",
    "c":"",
    "d":"",
    "e":""
}

我有像

这样的索引
{
    "a":1,
    "b":1,
    "c":1,
    "e":1
}

我的查询就像(它在查询中有字段" d"不在索引中)

db.mycoll.find({"a":"?","b":"?","c":"?","d":"?"});

如果我的索引支持上述查询,请告诉我?

1 个答案:

答案 0 :(得分:1)

是的,复合索引支持与前缀匹配的查询 索引字段。

  

除了支持所有索引字段匹配的查询外,   复合索引可以支持与前缀匹配的查询   索引字段。

Compound Index

我已经使用explain()查询了您的查询,获胜计划确实使用了索引扫描。

db.mycoll.find({"a":"?","b":"?","c":"?","d":"?"});
  

“stage”:“IXSCAN”