至于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中的所有同样名称的数据表。
因为复制会自动创建同样表名的数据表。