Copying a Database
To copy a database within a single mongod process, or between mongodservers, simply connect to the target mongod and use thecommand()
method:
- >>> from pymongo import MongoClient
- >>> client = MongoClient('target.example.com')
- >>> client.admin.command('copydb',
- fromdb='source_db_name',
- todb='target_db_name')
To copy from a different mongod server that is not password-protected:
- >>> client.admin.command('copydb',
- fromdb='source_db_name',
- todb='target_db_name',
- fromhost='source.example.com')
If the target server is password-protected, authenticate to the “admin”database:
- >>> client = MongoClient('target.example.com',
- ... username='administrator',
- ... password='pwd')
- >>> client.admin.command('copydb',
- fromdb='source_db_name',
- todb='target_db_name',
- fromhost='source.example.com')
See the authentication examples.
If the source server is password-protected, use the copyDatabasefunction in the mongo shell.
Versions of PyMongo before 3.0 included a copy_database
helper method,but it has been removed.