参考文档: https://docs.mongodb.com/manual/reference/method/db.collection.createIndex/
sparse https://docs.mongodb.com/v3.0/tutorial/create-a-sparse-index/
注意:
创建索引基本上都会使用的选项是sparse
加上它只是在索引字段存在的时候 才会有添加索引的动作,节省资源 .
使用场景: 项目后期追加的字段 添加索引的时候特别有用, 避免搞挂你的mongo,被你同事打
实列:
普通索引 created_at 倒叙 backgroup :true 后台运营,不block 其他进程
db.getCollection('collection').createIndex({created_at:-1},{background:true, sparse:true})
唯一索引
db.getCollection('statistic').createIndex({product_id:1, apikey:1,amount_date:1,node_area:1},{unique: true, background:true, sparse:true});
联合索引
db.collection.createIndex({'end_time':-1, 'login_status':1, 'status_report':1}, {background:true})
区别:
联合索引占用的磁盘空间小一点 ,但是 需要在查询的时候必须带上前面的条件 ,而且顺序不可以乱
在这个联合索引里面 只有三种可以利用到的方法
end_time ,
end_time login_status ,
end_time login_status status_report