5 min read
•Question 22 of 27mediumHow do you backup and restore MongoDB?
Data backup strategies.
What You'll Learn
- Backup methods
- Restore procedures
- Best practices
mongodump / mongorestore
$ terminalBash
# Backup entire database
mongodump --uri="mongodb://localhost:27017/mydb" --out=/backup
# Backup specific collection
mongodump --db=mydb --collection=users --out=/backup
# With compression
mongodump --uri="mongodb://localhost:27017/mydb" --gzip --out=/backup
# Restore
mongorestore --uri="mongodb://localhost:27017" /backup/mydb
# Restore specific collection
mongorestore --db=mydb --collection=users /backup/mydb/users.bsonmongoexport / mongoimport (JSON/CSV)
$ terminalBash
# Export to JSON
mongoexport --db=mydb --collection=users --out=users.json
# Export to CSV
mongoexport --db=mydb --collection=users --type=csv --fields=name,email --out=users.csv
# Import
mongoimport --db=mydb --collection=users --file=users.json
# Import with upsert
mongoimport --db=mydb --collection=users --file=users.json --upsertFields=emailMongoDB Atlas Backup
code.jsJavaScript
- Continuous backup with point-in-time recovery
- Automated snapshots
- Cloud provider snapshotsProgrammatic Backup
code.jsJavaScript
const { exec } = require('child_process');
function backup() {
const date = new Date().toISOString().split('T')[0];
const cmd = `mongodump --uri="${MONGO_URI}" --gzip --out=/backups/${date}`;
exec(cmd, (error, stdout, stderr) => {
if (error) console.error('Backup failed:', error);
else console.log('Backup completed');
});
}
// Schedule daily backup
setInterval(backup, 24 * 60 * 60 * 1000);Best Practices
- Automate regular backups
- Test restore procedures
- Store backups off-site
- Use encryption for backups
- Monitor backup completion