3.4 复合索引

  • MongoDB支持多个字段的复合索引,复合索引支持匹配多个字段的查询。
for(var i=1; i<10; i++)  db.customers.insert({name:"lanbo"+i, country:"Malaysia"}) //增加测试数据

db.customers.find({country:"Malaysia"}).explain("executionStats")  //执行查询语句
此查询会扫描54个文档,全表扫描,匹配上的文档只有18个,没有用索引;

db.customers.createIndex({country:1}) //增加索引
再执行查询语句可知,此查询会扫描18个文档,同时匹配18个;

db.customers.createIndex({name:1,country:1}) //创建复合索引

db.customers.find({name:"lanbo2",country:"Malaysia"}).explain("executionStats") //扫描文档1次即匹配