2015-12-15 76 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

相关问题