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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | > 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
[youtube https://www.youtube.com/watch?v=qYHIRWHS_5I]
We shall take a look at “system.indexes” collection
1 2 3 4 5 | > 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | > 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | > 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | > 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.