我正在尝试使用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
类,并且在新代码中不鼓励...
那么我有什么选择?
答案 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);