某些时候,我们需要迅速根据已存在的库创建一个新的库。
mongodb提供了一个方法db.copyDatabase()可以快速将已存在的库拷贝为一个新库。

使用方法

直接在目标实例端执行:

db.copyDatabase(fromdb, todb, fromhost, username, password, mechanism)

说明

  • db.copyDatabase() 本方法
  • fromdb 源库
  • todb 目标库
  • fromhost 源服务器的主机名,省略为复制同一个mongod实例的数据库。
  • username 源服务器用户,可空
  • password 源服务器密码,可空
  • mechanism 源服务器加密方式,可空

注意事项

  1. 在目标实例执行。
  2. 如果目标库不存在,会被创建。
  3. 如果目标库存在,但是不存在源库中的集合,会成功复制。
  4. 如果目标库中存与源库重复的集合,复制会失败。

举例

下面为复制成功:

>db.copyDatabase("qiansw.com","new.qiansw.com","localhost")
{ "ok" : 1 }

下面因为目标库重复,报错:

> db.copyDatabase("qiansw.com","new.qiansw.com")
{ "ok" : 0, "errmsg" : "collection already exists", "code" : 48 }

本文参考了官网文档:db.copyDatabase