Mongo 索引
语法:db.collection.ensureIndex({filed:1});
注:1.默认是曾序索引
2.默认索引是用btree组织
说明:1代表asc升序索引 -1 降序
子文档创建索引:
db.collection.ensureIndex({'fleld.subfiled':1});
说明: 为collection中文档的filed域下的subfiled域建索引
例: db.user.insert({userid:1,email:'[email protected]',intro:{height:175,age:24}}
db.user.ensoueIndex({'intro.height':1,'intro.age':1});
说明:此例为user表下的intro字段中的height,age字段建索引
多列创建索引:
db.collection.ensureIndex({field:1/-1},{unique:true});
说明: 1:field列上设置唯一索引 2:也可以针对"多列"设置唯一索引
例: db.user.ensureIndex({userid:1},{unique:true});
db.user.ensureIndex({a:1,b:1},{unique:true});
稀疏索引创建
db.collection.ensureIndex({field:1/-1},{sparse:true});
说明:稀疏索引是指--只针对含有field列的document建索引 而不指定此项,则不含field列的文档,把field的值理解为null,再建索引
例: db.user.ensureIndex({school:1},{sparse:true});
db.user.find({school:null});
哈希索引创建
db.collection.ensureIndex({field:'hashed'});
说明: 1. 可以单个字段或子文本字段上建立hash索引
2. 不可以针对"多个列"建立hash索引 例: db.collection.ensureIndex('intro.height':'hashed');
查看已有索引
db.collection.getIndexes();
删除指定索引:
db.collections.dropIndex({filed:1/-1/'hashed'});
例: db.user.dropIndex({'intro.height':'hashed'});
删除所有索引:
db.collection.dropIndexes();
注:_id列的索引不会被删除
重建索引
db.collection.reIndex()
作用: 重建collection中的所有索引,包括_id 意义: 减少索引文件碎片
例: db.user.reIndex()
标签:ensureIndex,field,MongoDb,db,collection,索引,user From: https://www.cnblogs.com/first131/p/16966580.html