2015-12-15 78 views
1

我試圖從運行MongoDB v3.2的遠程主機將數據庫複製到使用MongoDB Java驅動程序3.0運行MongoDB v3.0的本地數據庫。使用MongoDB 3.0 Java驅動程序複製數據庫

使用shell,我很容易地通過運行實現這一點:

db.copyDatabase("test", "test1", "104.xx.xx.21:27017", "admin", "xxxx") 

的Java驅動程序似乎並不具有copyDatabase命令,但是MongoDatabase接口有一個runCommand方法,所以我想的使用DB命令copydb。但是...這個命令是在使用MONGODB-CR的遠程主機上的only able to authenticate,而MongoDB v3.0和更高版本的forces me使用SCRAM-SHA-1機制來創建用戶。

我最終的想法是使用驅動程序來調用shell命令,但顯然這是唯一可能使用過時的DB類,並在新的代碼不鼓勵......

那麼選擇我呢?

回答

-1

它適合我。

DB adminDB = mongo.getDB("admin"); 
DBObject cmdObj = new BasicDBObject("copydb", 1).append("fromhost", "localhost").append("fromdb", source).append("todb", destination); 
CommandResult commandResult = adminDB.command(cmdObj); 
+0

感謝您的回答。但是,這是該驅動程序的舊版本(即不是v3.0)。我正在尋找一種方法來使用v3.0來做到這一點。 – Stav

相關問題