標籤:mongodb 建立索引 修改索引 刪除索引
使用ensureIndex函數建立集合的索引。
對集合而言,每個索引只需要建立一次,重複建立沒有任何作用;
> show collections system.indexes users
所有的資料庫的索引中繼資料都存放在system.indexs的集合中;
使用getIndexes函數查看給定的集合上的索引資訊:
> db.users.getIndexes() [ { "v" : 1, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "blog.users" }, { "v" : 1, "key" : { "username" : 1 }, "name" : "username_1", "ns" : "blog.users" }, { "v" : 1, "key" : { "age" : 1, "username" : 1 }, "name" : "age_1_username_1", "ns" : "blog.users" } ] >
可以適應dropIndex函數刪除指定的索引:
> db.users.dropIndex({"username":1}) { "nIndexesWas" : 3, "ok" : 1 } > db.users.getIndexes() [ { "v" : 1, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "blog.users" }, { "v" : 1, "key" : { "age" : 1, "username" : 1 }, "name" : "age_1_username_1", "ns" : "blog.users" } ] >
上述的例子中可以看到索引的標識預設格式為keyname1_dir1_keyname2_dir….keynameN_DirN;
也可以指定標識名:
> db.users.ensureIndex({"username":1},{"name":"firstname"}) { "createdCollectionAutomatically" : false, "numIndexesBefore" : 2, "numIndexesAfter" : 3, "ok" : 1 } > db.users.getIndexes() [ { "v" : 1, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "blog.users" }, { "v" : 1, "key" : { "age" : 1, "username" : 1 }, "name" : "age_1_username_1", "ns" : "blog.users" }, { "v" : 1, "key" : { "username" : 1 }, "name" : "firstname", "ns" : "blog.users" } ] >
修改索引的步驟:刪除索引—>建立索引;
刪除索引可以直接指定索引標識,例如:
> db.users.dropIndex("firstname") { "nIndexesWas" : 3, "ok" : 1 } > db.users.getIndexes() [ { "v" : 1, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "blog.users" }, { "v" : 1, "key" : { "age" : 1, "username" : 1 }, "name" : "age_1_username_1", "ns" : "blog.users" } ] >
本文出自 “緣隨心愿” 部落格,請務必保留此出處http://281816327.blog.51cto.com/907015/1600882
【MongoDB學習筆記22】MongoDB的索引管理