因工作中涉及到千万量级的数据搜索,使用普通的搜索是远远无法达到要求的,因此研究一下使用索引,提高搜索效率。
建立单键索引: db.col.createIndex({"field":1},{background:true})
建立复合索引: db.col.createIndex({"field1":1,"field2":1,"field3":1},{background:true})
//以上复合索引具有两个索引前缀
{"field1":1} {"field1":1,"field2":1},同索引的效果一样,皆可在查询中使用
建立全文索引: db.col.createIndex({"field":"text"},{background:true})
//文本索引建立起来的数据仅可进行模糊查询,适合因数据过大无法建立单键索引的词牌。
//全文索引仅可建立一个
使用全文索引:db.col.find({$text:{$search:"test"}})
删除索引:db.col.dropindex("indexName")