What command should I use to create a MongoDB dump of my database?
-
1Just a single `mongodump` without any flags and you get ***dump*** folder – Ivan Aracki Jun 26 '18 at 14:56
20 Answers
To dump your database for backup you call this command on your terminal
mongodump --db database_name --collection collection_name
To import your backup file to mongodb you can use the following command on your terminal
mongorestore --db database_name path_to_bson_file

- 7,564
- 2
- 17
- 32

- 4,439
- 2
- 24
- 21
-
3
-
https://dba.stackexchange.com/questions/113017/how-restore-a-specific-database-from-backup-using-mongorestore-command – Mahdi Esmaeili Aug 05 '20 at 10:44
-
You can also use gzip
for taking backup of one collection and compressing the backup on the fly:
mongodump --db somedb --collection somecollection --out - | gzip > collectiondump.gz
or with a date in the file name:
mongodump --db somedb --collection somecollection --out - | gzip > dump_`date "+%Y-%m-%d"`.gz
Update:
Backup all collections of a database in a date folder. The files are gziped:
mongodump --db somedb --gzip --out /backups/`date +"%Y-%m-%d"`
Or for a single archive:
mongodump --db somedb --gzip --archive > dump_`date "+%Y-%m-%d"`.gz
Or when mongodb is running inside docker:
docker exec <CONTAINER> sh -c 'exec mongodump --db somedb --gzip --archive' > dump_`date "+%Y-%m-%d"`.gz

- 6,058
- 7
- 50
- 67
-
-
-
1says: ERROR: don't know what to do with file! Gunizpped and tried `mongorestore --db db_name 'gunzipped file' – amitchhajer Jun 10 '15 at 06:54
-
2
-
8In version 3.2 of `mongodump` or higher you can use the `--gzip` option to do that: [mongodump_manpage](https://docs.mongodb.com/manual/reference/program/mongodump/#cmdoption--gzip) and same option for [mongorestore](https://docs.mongodb.com/manual/reference/program/mongorestore/#restore-from-compressed-data) – Boop May 30 '16 at 13:48
-
@r03, Is it possible to remove automatically old backups? For example remove backups which older than 1 week. – Pyrejkee May 28 '19 at 08:54
-
1@Pyrejkee: https://stackoverflow.com/questions/13489398/delete-files-older-than-10-days-using-shell-script-in-unix – roeland May 28 '19 at 09:58
-
@r03, do you happen to know why template for date `date +"%Y-%m-%d"` doesn't work on windows console? – Pyrejkee May 28 '19 at 10:03
-
1@Pyrejkee, better ask new questions for these things instead of a comment. (date on windows is very different) – roeland May 28 '19 at 11:38
-
How do I restore this single archive? from `mongodump --db somedb --gzip --archive > dump_`date "+%Y-%m-%d"`.gz` – chovy Aug 02 '22 at 17:09
Use mongodump
:
$ ./mongodump --host prod.example.com
connected to: prod.example.com
all dbs
DATABASE: log to dump/log
log.errors to dump/log/errors.bson
713 objects
log.analytics to dump/log/analytics.bson
234810 objects
DATABASE: blog to dump/blog
blog.posts to dump/log/blog.posts.bson
59 objects
DATABASE: admin to dump/admin
Source: http://www.mongodb.org/display/DOCS/Import+Export+Tools

- 13,265
- 5
- 41
- 50
-
5To put the results in a single compressed file, see http://unix.stackexchange.com/questions/93139/can-i-zip-an-entire-folder-using-gzip – Donal Lafferty Aug 27 '15 at 08:52
-
-
Please refer to this link. https://stackoverflow.com/questions/44996506/where-is-default-installation-directory-for-mongodb @spaceearth – Yash Tibrewal Apr 26 '21 at 09:49
This command will make a dump of given database in json and bson format.
mongodump -d <database name> -o <target directory>

- 2,920
- 21
- 28
-
And how can we restore all the collections (bson file) in single command? – Shivam Verma Oct 23 '20 at 07:57
-
Edit: Updated commands based on latest version of MongoDB v4.4.2
to export
mongodump -d <database name> -o <backup-folder>
to import
mongorestore -d <database name> --dir <backup-folder>

- 1,846
- 2
- 16
- 21
-
1still work `mongodump version: 100.7.0 git version: 17946f45f5fabfcdd99f8960b9109f976d370631 Go version: go1.19.3 os: linux arch: amd64 compiler: gc` – Tiana987642 Apr 20 '23 at 04:25
Backup/Restore Mongodb with timing.
Backup:
sudo mongodump --db db_name --out /path_of_your_backup/`date +"%m-%d-%y"`
--db
argument for databse name
--out
argument for path of output
Restore:
sudo mongorestore --db db_name --drop /path_of_your_backup/01-01-19/db_name/
--drop
argument for drop databse before restore
Timing:
You can use crontab for timing backup:
sudo crontab -e
It opens with editor(e.g. nano)
3 3 * * * mongodump --out /path_of_your_backup/`date +"%m-%d-%y"`
backup every day at 03:03 AM
Depending on your MongoDB database sizes you may soon run out of disk space with too many backups. That's why it's also recommended to clean the old backups regularly or to compress them. For example, to delete all the backups older than 7 days you can use the following bash command:
3 1 * * * find /path_of_your_backup/ -mtime +7 -exec rm -rf {} \;
delete all the backups older than 7 days
Good Luck.

- 1,005
- 14
- 31
You need to open command prompt as an administrator in a folder where your Mongo is installed (in my case: C:\Program Files\MongoDB\Server\3.4\bin). If you want to dump your whole database, you can just use:
mongodump --db database_name
You also have posibilities to dump only certain collection(s), or to dump all but certain collection(s).
If you want to dump only one collection (for example users):
mongodump --db database_name --collection users
If you want to dump all but users collection:
mongodump --db database_name --excludeCollection=users
It is also possible to output the dump to an archive file:
mongodump --archive=test.archive --db database_name

- 179
- 1
- 5
There is a utility called : mongodump On the mongo command line you can type :
>./mongodump
The above will create a dump of all the databases on your localhost. To make dump of a single collection use:
./mongodump --db blog --collection posts
Have a look at : mongodump

- 3,209
- 6
- 32
- 43
You can dump your database and restore with bellow command
mongodb -d <Your_db_name> -o <path of your folder>
for example my database name is tracking i have dump in dump folder
mongodb -d tracking -o dump
Restoring dump
mongorestore -d <databasename> <dum_path>
mongorestore -d tracking dump/tracking

- 15,498
- 5
- 79
- 71
Following command connect to the remote server to dump a database:
<> optional params use them if you need them
- host - host name port
- listening port username
- username of db db
- db name ssl
- secure connection out
output to a created folder with a name
mongodump --host --port --username --db --ssl --password --out _date+"%Y-%m-%d"

- 2,476
- 2
- 26
- 37

- 4,543
- 4
- 33
- 34
-
For those who are getting this error after running above suggested query- error parsing command line options: unknown option "ssl". Try to run above query after removing --ssl . it worked for me.Thanks. – Anurag_BEHS Jul 09 '18 at 19:44
-
Is there any chance to have an example of how a functioning command with all parameters should look? – user6400946 Aug 26 '21 at 13:14
If your database is in the local system. Then you can type the below command. for Linux terminal
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME
If database has username and password then you can use below code.
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD
This worked very well in my Linux terminal.

- 2,603
- 1
- 18
- 22

- 550
- 5
- 11
cmd -->
C:\Program Files\MongoDB\Server\3.2\bin>mongodump.exe --db Dintest

- 5,631
- 5
- 21
- 33

- 3,383
- 1
- 24
- 23
Mongo dump and restore with uri to local
mongodump --uri "mongodb://USERNAME:PASSWORD@IP_OR_URL:PORT/DB_NAME" --collection COLLECTION_NAME -o LOCAL_URL
Omitting --collection COLLECTION_NAME will dump entire DB.

- 413
- 3
- 17

- 2,556
- 1
- 19
- 23
Below command will work to take dump of mongo db .
mongodump -d -o
On Windows : try this one where c:\mongodump is dump file location , It will create metadata in json, and backup in bson format
C:\MongoDB\bin>mongodump -d -o c:\mongodump
use "path" for windows else it gives the error as: positional arguments not allowed

- 599
- 5
- 16
Or you can make backup script on Windows, remember to add Winrar to %PATH%
bin\mongodump --db=COL1 -o D:\BACK\COL1
rar.exe a -ep1 -r COL1.rar COL1
rename COL1.rar "COL1_%date:~10,4%_%date:~7,2%_%date:~4,2%_%time:~0,2%_%time:~3,2%.rar"
#rmdir /s /q COL1 -> don;t run this on your mongodb/ dir !!!!!

- 5,316
- 3
- 40
- 50
take mongodb backup for particular db and delete 7 days old backup using bin sh command :-
#!/bin/bash
MONGO_DATABASE="nexgtv_16"
APP_NAME="test"
MONGO_HOST="127.0.0.1"
MONGO_PORT="27017"
TIMESTAMP=`date +%F-%H%M`
MONGODUMP_PATH="/usr/bin/mongodump"
BACKUPS_DIR="/home/mongodbbackups/backups/$APP_NAME"
BACKUP_NAME="$APP_NAME-$TIMESTAMP"
$MONGODUMP_PATH -d $MONGO_DATABASE
mkdir -p $BACKUPS_DIR
mv dump $BACKUP_NAME
tar -zcvf $BACKUPS_DIR/$BACKUP_NAME.tgz $BACKUP_NAME
rm -rf $BACKUP_NAME
find /home/mongodbbackups/backups/test/ -mindepth 1 -mtime +7 -delete

- 34,372
- 9
- 61
- 83

- 69
- 4
Use -v to see progress of backup data
mongodump -v --db dbname --out /pathforbackup/NewFolderforBackupData
you can use it for restore also
mongorestore -v --db dbname --drop /pathforbackup/NewFolderforBackupData/dbname
with multile v like -vvvv you will get more information

- 51
- 6
I created a library called BackSync which helps to backup and sync MongoDB databases (also local files/directories and some other known databases), you can also schedule it with pm2 to run the process automatically.
Install:
npm i -g @ayoubamine/backsync
Add your MongoDB backup source:
backsync add backup
Add your sync source (Local, Google Drive, ...):
backsync add sync
Then, run the process:
backsync run

- 39
- 1
- 6
mongodump -h hostname -u dbusername -p dbpassword --db dbname --port portnumber --out /path/folder
mongodump -h hostname -u dbusername -p dbpassword --db dbname --port portnumber --out /path/folder.gz

- 161
- 1
- 1
- 11
-
1. mongodump - is a command to create a mongo dump along with we need input about specicification. 2. -h represents your mongodb hostname. 3. -u represents your mongodb username. 4. -p represents passsword. 5. --db represents the databasename tha we need to take dump. 6. --port represents the port your mongo is running. 7. --out represents the destination of your dump with name. – Anjankumar H N Mar 31 '17 at 06:07