用過資料庫的都知道,資料庫索引與書籍的索引類似,都是用來幫助快速查詢的。
mongodb的索引跟關係型資料庫的索引幾乎一致。
1. 索引的建立
mongodb採用ensureindex來建立索引,如:
db.user.ensureindex()
表示在user集合的name鍵建立乙個索引,這裡的1表示索引建立的方向,可以取值為1和-1
在這裡面,我們沒有給索引取名字,mongodb會為我們取乙個預設的名字,規則為keyname1_dir1_keyname2_dir2...keynamen_dirn
keyname表示鍵名,dir表示索引的方向,例如,上面的例子我們建立的索引名字就是name_1
索引還可以建立在多個鍵上,也就是聯合索引,如:
> db.user.ensureindex()
這樣就建立了name和age的聯合索引
除了讓mongodb預設索引的名字外,我們還可以去乙個方便記的名字,方法就是為ensureindex指定name的值,如:
> db.user.ensureindex(,)
這樣,我們建立的索引的名字就叫ix_name了
2. 唯一索引
與rdb類似,我們也可以定義唯一索引,方法就是指定unique鍵位true:
>db.user.ensureindex(,)
3.檢視我們建立的索引
索引的資訊存在每個資料庫的system.indexes集合裡面,對這個集合只能有ensureindex和dropindexes進行修改,不能手動插入或修改集合。
通過》 db.system.indexes.find()可以找到資料庫中多有的索引:
> db.system.indexes.find()
, "ns" : "test.entities", "name" : "_id_" }
, "ns" : "test.blog", "name" : "_id_" }
4.刪除索引
如果索引沒有用了,可以使用dropindexes將其刪掉:
> db.runcommand()
ok表示刪除成功
mysql新增刪除索引 mysql新增刪除索引
mysql show create table table test table create table table test create table table test id bigint 20 not null auto increment comment 涓婚敭 activity id ...
mongodb 新增或刪除字段
1 新增乙個欄位.collectionsname 代表表名 新增字段 content。字串型別。db.collectionsname update 2 刪除乙個字段 db.collectionsname update false,true 為缺失 content 鍵的資料 新增鍵content並將新...
MySQL新增 刪除索引
應用於表建立完畢之後再新增 alter table 表名 add 索引型別 unique,primary key,fulltext,index 索引名 欄位名 普通索引 alter table table name add index index name column list 唯一索引 alte...