为了提高MongoDB的读取速度,可以通过建立索引来实现读取速度的显著提高,下面是一些MongoDB中对索引的一些操作:
(1)建立索引:
> db.testnum.ensureIndex({"name":1});
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 1,
"numIndexesAfter" : 2,
"ok" : 1
}
>
>
> db.testnum.ensureIndex({"name":-1});
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 2,
"numIndexesAfter" : 3,
"ok" : 1
}
>
>
> db.testnum.getIndexes();
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "test.testnum"
},
{
"v" : 1,
"key" : {
"name" : 1
},
"name" : "name_1",
"ns" : "test.testnum"
},
{
"v" : 1,
"key" : {
"name" : -1
},
"name" : "name_-1",
"ns" : "test.testnum"
}
]
>
>
>
”1“和”-1“分别代表按照升序和降序来进行索引。
(2)建立联合索引:
> db.testnum.ensureIndex({"name":1,"age":1});
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 3,
"numIndexesAfter" : 4,
"ok" : 1
}
>
(3)删除索引:
> db.testnum.dropIndex({"name":1});
{ "nIndexesWas" : 4, "ok" : 1 }
>
>
> db.testnum.getIndexes();
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "test.testnum"
},
{
"v" : 1,
"key" : {
"name" : -1
},
"name" : "name_-1",
"ns" : "test.testnum"
},
{
"v" : 1,
"key" : {
"name" : 1,
"age" : 1
},
"name" : "name_1_age_1",
"ns" : "test.testnum"
}
]
>