10

How do i change a db name in mongodb? Simple question but i can't find anything online on how to do this. I don't want to have to rebuild my entire database, i just simple want to change the name of it. thanks.

Community
  • 1
  • 1
user982853
  • 2,470
  • 14
  • 55
  • 82
  • Just be careful while renaming you must not mess up with copying the collections to existing database. Checkout my answer https://stackoverflow.com/a/44986052/1696621 – Channaveer Hakari Jul 08 '17 at 12:08

4 Answers4

19

Simple use this :

db.copyDatabase("old_db_name","new_db_name","localhost")
use old_db_name
db.dropDatabase();
10

The only way is to clone the database to one of a different name

http://www.mongodb.org/display/DOCS/Copy+Database+Commands

You could go here and vote for that feature

kelloti
  • 8,705
  • 5
  • 46
  • 82
4

Starting in version 4.2, MongoDB removes the deprecated copydb command. Also, db.copyDatabase() and db.cloneDatabase() can only be run when connected to MongoDB 4.0 or earlier.

Use this approach for version 4.2 as mentioned at mongoDB manual

    1. Use mongodump to dump the test database to an archive mongodump-test-db:
mongodump --archive="mongodump-test-db" --db=test
    1. Use mongorestore with --nsFrom and --nsTo to restore (with database name change) from the archive:
mongorestore --archive="mongodump-test-db" --nsFrom='test.*' --nsTo='examples.*'
Hemant
  • 1,403
  • 2
  • 11
  • 21
3

You can dump database

./mongodump -d mydb

rename folder

mv /path/to/dump/folder/mydb /path/to/dump/folder/mynewdb

and then restore

./mongorestore
Alexander Serkin
  • 1,679
  • 1
  • 12
  • 11