我正在做这样的询问:
.find({name: "bob", gender: "male"})
.find({name: "alice"})
我创建了2个索引,一个用{"name": 1}
,另一个用{"name": 1, "gender": 1}
创建2个索引在这里有意义吗?这样做是否浪费空间?例如,我可以摆脱名称索引吗?
答案 0 :(得分:0)
是的,这是浪费内存,您所需要的只是'name'和'gender'的复合索引。
db.table.createIndex( { "name": 1, "gender": 1 } )
这允许您同时使用两个选项。您可以只查询名称,也可以查询与项目组合的类别。多个字段上的单个复合索引可以支持所有搜索这些字段的“前缀”子集的查询。