Last active
May 4, 2021 08:37
-
-
Save ixti/5359329 to your computer and use it in GitHub Desktop.
Small script that extracts all non-default indexes from MongoDB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
rs.slaveOk(); | |
db.getCollectionNames().forEach(function(coll) { | |
db[coll].getIndexes().forEach(function(index) { | |
if ("_id_" !== index.name) { | |
print("db." + coll + ".ensureIndex(" + tojson(index.key) + ")"); | |
} | |
}); | |
}); |
Great script, thanks!
Here is a version to recreate them all with options, and with the new createIndex command instead of ensureIndex (since mongoDB 3.0)
db.getCollectionInfos().forEach(function(coll) {
//print( JSON.stringify( coll ))
if (coll.type === "collection" ) {
db[coll.name].getIndexes().forEach(function(index) {
if ("id" !== index.name) {
//print( JSON.stringify( index ))
var indexKey = index.key // save the key, and transform index into the "options"
delete index.v
delete index.key
index.background = true // optional: force background to be true
print("db." + coll.name + ".createIndex(" + JSON.stringify(indexKey) + ", " + JSON.stringify(index) + ")");
}
});
}
});
Thanks @tonyt73, helped a lot.
@nicothed thxs!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Here is a version to read all the databases and extract all the index (except admin and local)