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值
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/