使用MongoDB 3.0 Java驱动程序复制数据库

时间:2015-12-15 22:21:33

标签: java mongodb mongodb-java

我正在尝试使用MongoDB Java Driver 3.0将数据库从运行MongoDB v3.2的远程主机复制到运行MongoDB v3.0的本地数据库。

使用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 个答案:

答案 0 :(得分:-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);