-
-
Save ixti/5359329 to your computer and use it in GitHub Desktop.
rs.slaveOk(); | |
db.getCollectionNames().forEach(function(coll) { | |
db[coll].getIndexes().forEach(function(index) { | |
if ("_id_" !== index.name) { | |
print("db." + coll + ".ensureIndex(" + tojson(index.key) + ")"); | |
} | |
}); | |
}); |
Here is a version to read all the databases and extract all the index (except admin and local)
db.getMongo().getDBNames().forEach(function(dbName) {
if (dbName != "admin" && dbName != "local") {
db.getSiblingDB(dbName).getCollectionNames().forEach(function(coll) {
db.getSiblingDB(dbName)[coll].getIndexes().forEach(function(index) {
if ("_id_" !== index.name) {
print("db.getSiblingDB('" + dbName + "')." + 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!
USAGE: