mongodb复制数据库和复制表的shell命令

至于mongodb的基本用户权限和数据增删改查等操作命名请看下面链接的文章。

mongoDB用户角色权限配置和相关使用规范_mongodb用户权限-CSDN博客

这里直接说mongodb的数据库和表复制命令。

表复制

语法:

db.runCommand({cloneCollection:"<namespace>",from:"<hostname>",query:{<query>}})

参数:

(1)<namespace>: 集合的命名空间,命名空间包含了(数据库名.表名) 

(2)from:指定远程主机名和可选的端口号  (有账号密码得加上)

(3)query:string 可选项,过滤条件语句

例如:

db.runCommand({cloneCollection:"test.haha",from:"123.56.12.42:27017"})

注意:

假如从数据库A复制表a到新的主机上。首先你要先use 数据库,切换到这个需要接收数据的数据库上,

然后确保这个接收数据的数据库不能有‘a’这个名称的数据表。

因为复制会自动创建同样表名的数据表。

数据库复制

语法:

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

从远程主机复制数据到本地,或者从本地复制数据库到远程主机。

参数:

(1)fromdb:string 源数据库名称

(2)todb:string 目标数据库名称

(3)fromhost:string 可选项,源数据库的主机名。若是同一主机,则忽略该项

(4)username:string 可选项 源主机用户名

(5)password:string 可选项 源主机用户名所对应的密码

属性:

(1)db.copyDatabase()运行在目标主机的mongod实例上

(2)db.copyDatabase()若目标数据库不存在,则会创建目标数据库

(3)db.copyDatabase()需要目标机器上有足够的空间进行复制

(4)db.copyDatabase()并不会产生目标数据库的即时快照。若在复制的过程中在源火目标库中发生读写操作,会导致数据库不一致。

(5)db.copyDatabase()在操作过程中并不会锁住目标机,所以复制过程中可能出现暂时的终端来完成其他操作

示例:

    db.copyDatabase("test","test","123.56.1.123:27017","root","123456");
 

注意:

假如从远程主机复制数据库A到当前主机数据库B。首先你要先use  B数据库,切换到这个需要接收数据的数据库上,

然后确保这个接收数据的数据库B不能有A中的所有同样名称的数据表。

因为复制会自动创建同样表名的数据表。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值