Drop all indexes from all the collections in a MongoDB database using the command line?



Following is the syntax to drop all indexes from all collections in a MongoDB database using command line

db.getCollectionNames().forEach(function(yourVariableName) {    db.runCommand({dropIndexes: yourVariableName, index: "*"}); });

The above syntax will drop all indexes except _id.

Let us check the current database. Following is the query

> db

This will produce the following output

Test

Following is the query to let us show some indexes from a collection before dropping indexes

> db.indexingDemo.getIndexes();

This will produce the following output

[    {       "v" : 2,       "key" : {          "_id" : 1       },       "name" : "_id_",       "ns" : "test.indexingDemo"    },    {       "v" : 2,       "key" : {          "StudentFavouriteSubject" : 1       },       "name" : "StudentFavouriteSubject_1",       "ns" : "test.indexingDemo",       "background" : true    } ]

Following is the query to drop all indexes from all the collections in a MongoDB database

> db.getCollectionNames().forEach(function(allCollectionName) { ...    db.runCommand({dropIndexes: allCollectionName, index: "*"}); ... });

Following is the query to check whether the indexes have been dropped or not

> db.indexingDemo.getIndexes();

This will produce the following output

[    {       "v" : 2,       "key" : {          "_id" : 1       },       "name" : "_id_",       "ns" : "test.indexingDemo"    } ]

Look at the above sample output, indexes have been dropped successfully.

Updated on: 2019-07-30T22:30:25+05:30

261 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements