Mongodb 索引
MongoDB的索引跟传统数据库的索引相似,一般的如果在传统数据库中需要建立索引的字段,在MongoDB中也可以建立索引。
MongoDB中_id字段默认已经建立了索引,这个索引特殊,并且不可删除,不过Capped Collections例外。
1. 建立索引
建立索引的函数:ensureIndex()
例子:
>$ db.persons.ensureIndex({name:1});2. 使用索引a) 普通索引 >$ db.persons.find({name :’sam’}); // fast - uses index>$ db.persons.find({age: 3}); // slow - has to check all because 'age' isn't indexed b) 嵌入式索引 >$db.things.ensureIndex({"address.city": 1})c) 文档式索引 >$db.factories.insert( { name: "xyz", metro: { city: "New York", state: "NY" } } );>$db.factories.ensureIndex( { metro : 1 } );
1. 查看索引
> db.VIDEO.getIndexes()
[
{
"name" : "_id_",
"ns" : "ISYDB.VIDEO",
"key" : {
"_id" : 1
},
"v" : 0
}
3. 重建索引 db.myCollection.reIndex()// same as:db.runCommand( { reIndex : 'myCollection' } )
这个操作是个加锁操作,并且如果集合很大,这个操作会很耗时。
注:用repair命令修复数据库的时候,会重建索引