Skip to content

MongoDB Backup (import/export)

Export Mongodb

Bash
sudo mongoexport --db some_db -c some_collection --out give_it_a_name.json

Import Mongodb

Bash
sudo mongoimport --db some_db --collection some_collection --file give_it_a_name.json 

--db - database

-c - collection

Mogodump with replica set

Bash
mongodump --forceTableScan --uri "mongodb://admin_name:password@domain_or_ip1:domain_or_ip2:27017,domain_or_ip3:27017/db_here?replicaSet=nameof-replica&authSource=admin" --out path/dumpname

Mongorestore replica set

Remote Restore (working command) - mongo 4.2

Bash
mongorestore --host=$HOST --port=$PORT -u $ADMIN_USER -p $PSWD  --db <your-db> <absolute-path-to-restore-db> --authenticationDatabase "admin"

Working command mongo 4.2

Bash
mongorestore --uri "mongodb://admin:[email protected]:27020,127.0.0.1:27021,127.0.0.1:27022/dbname?authSource=admin" --db dbname dump/1/dbname/
  • Theory
Bash
mongorestore --uri "mongodb://admin_name:[email protected]:27020,127.0.0.1:27021,127.0.0.1:27022/db_here?replicaSet=name-replica&authSource=admin" --db db_here /path/to/dump/

Tip: Automatic backup with cron:

Bash
crontab -e
Bash
# every day export at 23h with date and time
0 23 * * * cd /home/ubuntu/mongodb-backup && sudo mongoexport --db some_db -c some_ocllection --out some_name$(date +"%Y_%m_%d_%I_%M_%p").json >> crontab.log 2>&1
Bash
# remove older backups and leave last seven (runs every Saturday at 00:00 )
0 0 * * 6 cd /home/ubuntu/mongodb-backup && ls -1tr | head -n -7 | grep some_name  | xargs -d '\n' rm -f --