多键索引(mutiKey Indexes)是建在数组上的索引,在mongoDB的document中,有些字段的值为数组,多键索引就是为了提高查询这些数组的效率。
准备测试数据,classes集合中添加两个班级,每个班级都有一个students数组,如下:
1 准备测试数据
db.classes.insertMany([
{
"classname":"class1",
"students":[{name:'jack',age:20},
{name:'tom',age:22},
{name:'lilei',age:25}]
},
{
"classname":"class2",
"students":[{name:'lucy',age:20},
{name:'jim',age:23},
{name:'jarry',age:26}]
}]
)
2 新建索引,测试
//建索引
db.classes.createIndex({"students.age":1})
//测试索引
db.classes.find({"students.age":30}).explain()
//删除索引
db.classes.dropIndex({ "students.age": 1 })