mongo复制数据库和集合-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

mongo复制数据库和集合

简介:

1. 复制数据库

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


后面四个选项可选:

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

1.2 db.runCommand()

{ copydb: 1,
  fromhost: <hostname>,
  fromdb:   <database>,
  todb:     <database>,
  slaveOk:  <bool>,
  username: <username>,
  nonce:    <nonce>,
  key:      <key>
}

fromhost: 可选,见1.1;
slaveOK: 可选,设置为true,允许从secondary复制数据,此时fromehost必须被设置;
username: 可选,见1.1;
nonce: 远程服务器上产生的一次性共享密钥;
key: 对password的hash值
657a0be945aaa54f5ee08ebf10ef5211f88626e8

2. 复制Collection

2.1 runCommand

db.runCommand({
  cloneCollection: <namespace>
  fromhost:         <hostname>
  query:               <filter>
});

db.runCommand({cloneCollection:"testdb.testcol", fromhost:"192.168.1.12:27017", query:{"age":{"gt":2}}});

2.2 db.cloneCollection

db.cloneCollection(from, collection, query)


参考:
https://docs.mongodb.com/manual/reference/method/db.copyDatabase/#db.copyDatabase
https://docs.mongodb.com/manual/reference/command/copydb/
https://docs.mongodb.com/manual/reference/command/cloneCollection/
https://docs.mongodb.com/manual/reference/method/db.cloneCollection/#db.cloneCollection
https://docs.mongodb.com/manual/reference/command/clone/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章