關於mongodb中的索引

查看是否有索引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
相關文章
相關標籤/搜索