We learnt the uses of having an index/key on our collection and how to create the index. Now, in this video tutorial lets learn how to get index on individual collection and how to drop / remove / delete the index we’ve created.
Related Read: index creation: MongoDB
temp: Database name
no, another: collection names
We’ve 10 Million documents inside “no” collection.
Sample document
> use temp
switched to db temp
> show collections
no
system.indexes
> db.no.find({"student_id": {$lt: 3}}).pretty()
{
"_id" : ObjectId("53c9020abcdd1ea7fb833cda"),
"student_id" : 0,
"name" : "Satish"
}
{
"_id" : ObjectId("53c9020abcdd1ea7fb833cdb"),
"student_id" : 1,
"name" : "Satish"
}
{
"_id" : ObjectId("53c9020abcdd1ea7fb833cdc"),
"student_id" : 2,
"name" : "Satish"
}
Fetch Index and Drop / remove Index: MongoDB
We shall take a look at “system.indexes” collection
> db.system.indexes.find()
{ "v" : 1, "key" : { "_id" : 1 },
"name" : "_id_", "ns" : "temp.no" }
{ "v" : 1, "key" : { "student_id" : 1 },
"name" : "student_id_1", "ns" : "temp.no" }
Create “another” collection
> db.another.insert({"name": "Satish", "age": 27});
WriteResult({ "nInserted" : 1 })
> show collections
another
no
system.indexes
> db.system.indexes.find()
{ "v" : 1, "key" : { "_id" : 1 },
"name" : "_id_", "ns" : "temp.no" }
{ "v" : 1, "key" : { "student_id" : 1 },
"name" : "student_id_1", "ns" : "temp.no" }
{ "v" : 1, "key" : { "_id" : 1 },
"name" : "_id_", "ns" : "temp.another" }
After creating “another” collection, mongoDB engine generates default key on its “_id” field. And “system.indexes” shows all the keys present inside the database for all the collections it has. This can get messy if we have large number of collections – which we do in even slightly bigger projects.
To get index on individual collection
> db.another.getIndexes()
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "temp.another"
}
]
> db.no.getIndexes()
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "temp.no"
},
{
"v" : 1,
"key" : {
"student_id" : 1
},
"name" : "student_id_1",
"ns" : "temp.no"
}
]
We can make use of getIndex() method to fetch or get indexes / keys present on individual collection.
Removing / deleting / dropping – index / key
> db.no.dropIndex({"student_id": 1});
{ "nIndexesWas" : 2, "ok" : 1 }
> db.no.getIndexes()
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "temp.no"
}
]
make use of dropIndex() method and pass-in the index object similar to that used while creating the index. This shall drop the index.