db.collection_name.ensureIndex()
db.class.ensureIndex({‘name‘:1})
db.class.ensureIndex({‘name‘:1,age:1})
db.collection_name.getIndexs()
db.collection_name.dropIndex()
db.class.dropIndex({‘name‘:1,age:1})
db.collection_name.dropIndexes()
explain()
db.class.find({age:22}).explain()
类型 | 作用 | 例子 |
---|---|---|
数组索引 | 如果对某个数组域创建索引,则对数组中的每个值均创建了索引。通过数组中单个值查询也会提高效率 | db.class.ensureIndex({hobby:1}) |
子文档索引 | 某个域值为文档,对其子文档创建索引,则加快通过子文档进行查找的查找速度 | db.class.ensureIndex({‘parent.child‘:1}) |
唯一索引 | 唯一索引创建时希望索引的域值有不同的值,也可以通过这个方法限制域值 | db.class.ensureIndex({name:1},{‘unique‘:1}) |
覆盖索引 | 查找时,只获取索引项的内容,而不去连接其他文档内容。这样从索引表就可以到得到查询结果,提高查询效率 | 索引为name查找项也只有name db.class.find({name:‘a‘},{_id:0,name:1}) |
稀疏索引(间隙索引) | 只针对有指定域的文档创建索引,没有该域的文档不加入索引 | db.class.ensureIndex({age:1},{sparse:true}) |
文本索引 | 使用文本索引可以快速进行文本检索,这在较长的字符串搜索中比较有用,可进行多个关键词匹配,以空格隔开,如搜索内容包含空格,空格需要转义字符(\"keyword\"),‘-‘表示不包含 | 1. 创建文本索引db.class.ensureIndex({msg:‘text‘,description:‘text‘}) ——— 2. 检索(包含"keyword1"或者"key word 2"且不包含"keyword3") db.class.find({$text:{$search:"keyword1 \"key word 2\" -keyword3"}}) 3.删除文本索引 通过getIndex()查看索引名,再通过dropIndex()删除 |
db.createCollection(‘collection_name‘,{capped:true,size:10000,max:1000})
原文:https://www.cnblogs.com/donyblog/p/11668977.html