【发布时间】:2016-11-15 09:35:12
【问题描述】:
是否可以从 JAVA 应用程序配置 Mongo 副本集?
是否有用于 rs.initiate()、rs.add() 等的 JAVA API?
我希望从应用程序配置 mongo 副本集,而无需手动登录 mongo 控制台。
有办法吗?
提前致谢。
【问题讨论】:
标签: java mongodb mongodb-replica-set
是否可以从 JAVA 应用程序配置 Mongo 副本集?
是否有用于 rs.initiate()、rs.add() 等的 JAVA API?
我希望从应用程序配置 mongo 副本集,而无需手动登录 mongo 控制台。
有办法吗?
提前致谢。
【问题讨论】:
标签: java mongodb mongodb-replica-set
没有直接的方法,只能通过数据库admin 和runCommand 来完成。
这是rs.add的伪示例:
val client = new MongoClient(ip, port);
val db = client.getDatabase("admin");
val conf = db.runCommand({ replSetGetConfig: 1}).get("config", Document.class);
val members = conf.get("members", List.class);
members.add({ "_id": 10, "host": "192.168.1.110:27001" });
// we need to update the config version to make config acceptible
conf.put("version", conf.getInteger("version" + 1));
conf.put("members", members);
db.runCommand({ replSetReconfig: conf });
【讨论】:
您可以使用DB.eval() 函数。
【讨论】:
DB.eval()?我强烈推荐阅读How to Answer。 - From Review