mongo复制数据库和表

一、在同一个主机上从一个db的表复制到另一个db

 

  • db.collection_name.find().forEach(function(d){ db.getSiblingDB('new_database')['collection_name'].insert(d);})

    collection_name是数据库表名 
    new_database是目的数据库

    克隆本地collection,mongodb没有提供命令进行本地复制,但我们可以写一个循环插入的方法完成

    例如:将sys_param_type中的数据复制一份到targetDbName数据库实例中的sys_param_type集合中,代码如下:

    db.sys_param_type.find().forEach(function(d){ db.getSiblingDB('targetDbName')['sys_param_type'].insert(d);})

二、复制数据库

1.命令:

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

参数解释:

* fromdbt: 源db; 
* todb: 目标db; 
* fromhost: 源db的主机地址,如果在同一个mongod实例内可以省略; 
* username: 如果开启了验证模式,需要源DB主机上的MongoDB实例的用户名; 
* password: 同上,需要对应用户的密码; 
* mechanism: fromhost验证username和password的机制,有:MONGODB-CR、SCRAM-SHA-1两种。
举例:

db.copyDatabase('shiroDemoOld','shiroDemoNew','127.0.0.1:27017','root','123456','SCRAM-SHA-1')

三、复制Collection

第一种方式(runCommand):

db.runCommand({

  cloneCollection: <namespace>

  fromhost:         <hostname>

  query:               <filter>

});

例如:

db.runCommand({cloneCollection:'testdb.testcol', from:'127.0.0.1:27017',copyIndexes:false, query:{'age':{'gt':2}}});

copyIndexes:是否复制索引

第二种方式( db.cloneCollection):

db.cloneCollection(fromCollection, toCollection, query)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值