【问题标题】:Copy database using MongoDB 3.0 Java Driver使用 MongoDB 3.0 Java 驱动程序复制数据库
【发布时间】:2015-12-15 22:21:33
【问题描述】:

我正在尝试使用 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。但是...这个命令在远程主机上是only able to authenticate使用MONGODB-CR,而MongoDB v3.0及更高版本forces me使用SCRAM-SHA-1机制创建用户。

我最后的想法是使用驱动程序调用 shell 命令,但显然这只能使用已弃用的 DB 类,并且在新代码中不鼓励...

那么我有什么选择呢?

【问题讨论】:

    标签: java mongodb mongodb-java


    【解决方案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);
    

    【讨论】:

    • 感谢您的回答。然而,这是驱动程序的旧版本(即不是 v3.0)。我正在寻找一种使用 v3.0 的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多