如何使用一个收集蒙哥顿

如何使用 mongodump将单个集合从一个数据库移动到另一个数据库?

如何使用该命令及其选项?

101257 次浏览

I think it's just:

mongodump --db=<old_db_name> --collection=<collection_name> --out=data/


mongorestore --db=<new_db_name> --collection=<collection_name> data/<db_name>/<collection_name>.bson

Also see docs here and here.

Btw, the other way to move the collection from one database to another is to use renameCollection:

db.runCommand({renameCollection:"<old_db_name>.<collection_name>",to:"<new_db_name>.<collection_name>"})

Here's some related SO threads:

Hope that helps.

Very basic commands for dump mongodb.

  1. Dump all collection

    mongodump
    
  2. Dump specific database only

    mongodump --db=DB_NAME
    
  3. Dump database with username & password

    mongodump -u=USERNAME -p=PASSWORD --db=DB_NAME
    
  4. Dump from another host

    mongodump --host HOST_NAME/HOST_IP --port HOST_PORT  --out {YOUR_DIRECTOTY_PATH} --db=DB_NAME
    

Only able to dump from another host when they allow it.

Taking database (document) dump (backup)

mongodump --host <hostname-of-mongoserver> --db <db-name> --username <dbuser-name> --password <password> --gzip --out </backup/location/>

Taking collection dump (backup)

mongodump --host <hostname-of-mongoserver> --db <db-name> --collection <collection-name> --username <dbuser-name> --password <password> --gzip --out </backup/location/>

mongodump documentation

Here is an example of how you can export a single collection with mongodump.exe on Windows 10:

"D:\Program Files\MongoDB\Server\4.0\bin\mongodump.exe" -h localhost --port 27017 -d meteor --collection users -o meteor_users

The exported collection is users, the database is meteor, the host localhost, the port is 27017.

The output will be stored in directory meteor_users.

Restoring should use a command like this one:

"D:\Program Files\MongoDB\Server\4.0\bin\mongorestore.exe" -d meteor -c users users.bson

If it's a replica set and you want to use the --uri you should use it like this cause documentation states that you can't specify some options when using --uri

mongodump --uri "mongodb://user:password@mongo-en-1.example.io:27017,mongo-en-2.example.io:27017,mongo-en-3.example.io:27017/$Databasename?replicaSet=$replicasetname&authSource=admin"  --collection $collectionname

Then restore it the usual way.

None of them works for me while doing dump for MongoDB atlas. Here is the minor change in the host that work for me

Dump

mongodump --uri mongodb+srv://<USERNAME>:<PASSWORD>@host.abcd.mongodb.net/db_name --collection "user_collection" --gzip --out db_backup_folder

Restore

mongorestore --uri mongodb+srv://<USERNAME>:<PASSWORD>@dbhost.abcd.mongodb.net -d db_name --gzip  db_backup_folder

atlas-database-tools-backup-restore