Skip to content

Instantly share code, notes, and snippets.

@BlakeGardner
Last active February 19, 2024 16:55
Show Gist options
  • Save BlakeGardner/8548102 to your computer and use it in GitHub Desktop.
Save BlakeGardner/8548102 to your computer and use it in GitHub Desktop.
Compact all collections inside of a MongoDB database
// This script loops though the list of collection names in a MongoDB and runs the compact operation on them
// Simply paste this into the Mongo shell
use testDbName;
db.getCollectionNames().forEach(function (collectionName) {
print('Compacting: ' + collectionName);
db.runCommand({ compact: collectionName });
});
@ConorSheehan1
Copy link

ConorSheehan1 commented Feb 19, 2024

db.getCollectionNames returns views too 🙃

Returns an array containing the names of all collections and views

https://www.mongodb.com/docs/manual/reference/method/db.getCollectionNames/

If you want collection names only you need something like db.getCollectionInfos({ type: 'collection' }).map(v => v.name).filter(v => v != 'system.views')

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment