查看是否有索引shell
db.<集合名>.getIndexes();code
很明顯索引是在_id上面
索引
> db.test2.getIndexes() [ { "v" : 1, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "testfind.test2" } ]
創建索引:get
在某一列上創建索引 1表示升序,-1表示降序io
> db.test2.ensureIndex({num:1}) { "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 } > db.test2.getIndexes() [ { "v" : 1, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "testfind.test2" }, { "v" : 1, "key" : { "num" : 1 }, "name" : "num_1", "ns" : "testfind.test2" } ]
索引明顯,列名_1,例如num的索引是num_1class
刪除索引test
> db.test2.dropIndex('num_1') { "nIndexesWas" : 2, "ok" : 1 } > db.test2.getIndexes() [ { "v" : 1, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "testfind.test2" } ]
創建組合索引和創建一個列的索引差不錯call
> db.test2.ensureIndex({num:1,type:1}) { "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 } > db.test2.getIndexes() [ { "v" : 1, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "testfind.test2" }, { "v" : 1, "key" : { "num" : 1, "type" : 1 }, "name" : "num_1_type_1", "ns" : "testfind.test2" } ]
刪除多個索引db
> db.test2.dropIndexes() { "nIndexesWas" : 2, "msg" : "non-_id indexes dropped for collection", "ok" : 1 }
創建惟一性索引集合
> db.test2.ensureIndex({num:1},{unique:true}) { "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 } > db.test2.getIndexes() [ { "v" : 1, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "testfind.test2" }, { "v" : 1, "unique" : true, "key" : { "num" : 1 }, "name" : "num_1", "ns" : "testfind.test2" } ]
查看索引總大小,返回的是字節數
> db.test2.totalIndexSize() 16384