What command should I use to create a MongoDB dump of my database?

1

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 
2

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 
9

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:

3

This command will make a dump of given database in json and bson format.

mongodump -d <database name> -o <target directory> 
2

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> 

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.

ref:

0

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 

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

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 

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

If your database in the local system. Then you type the below command. for Linux terminal

mongodump -h SERVER_NAME:PORT -d DATABASE_NAME 

If database user and password are there then you below code.

mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD 

This worked very well in my Linux terminal.

cmd -->

C:\Program Files\MongoDB\Server\3.2\bin>mongodump.exe --db Dintest 
2

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.

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

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 !!!!! 

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 
 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 

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 
0

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

1