考虑我有以下收集结构
"mycoll":{
"a":"",
"b":"",
"c":"",
"d":"",
"e":""
}
我有像
这样的索引{
"a":1,
"b":1,
"c":1,
"e":1
}
我的查询就像(它在查询中有字段" d"不在索引中)
db.mycoll.find({"a":"?","b":"?","c":"?","d":"?"});
如果我的索引支持上述查询,请告诉我?
答案 0 :(得分:1)
是的,复合索引支持与前缀匹配的查询 索引字段。
除了支持所有索引字段匹配的查询外, 复合索引可以支持与前缀匹配的查询 索引字段。
我已经使用explain()查询了您的查询,获胜计划确实使用了索引扫描。
db.mycoll.find({"a":"?","b":"?","c":"?","d":"?"});
“stage”:“IXSCAN”