【问题标题】:Ask MongoDB host if it is Master using Java Driver [duplicate]使用 Java 驱动程序询问 MongoDB 主机是否是 Master [重复]
【发布时间】:2013-09-04 07:35:17
【问题描述】:

是否可以询问 MongoDB 主机是否是使用 Java 驱动程序的主机?

我已经检查了问题 Ask MongoDB if it is Master out of a bashscript,但我宁愿尝试在我的应用程序中执行此操作,而不是在 bash 脚本中进行连接。

【问题讨论】:

标签: java mongodb master-slave


【解决方案1】:

也许没有为 Java 驱动程序提供辅助函数,但您仍然可以使用驱动程序发出命令。

如果你进入 MongoDB Shell,然后打印

db.isMaster(不带括号)

然后回车,JavaScript 解释器将打印出辅助函数的实现。在db 上下文中,isMaster() 函数是一个助手,代码如下:

function () { return this.runCommand("isMaster"); }

所以在后台db.runCommand("isMaster") 执行。 Mongo Shell 中有很多助手,其中一些相当复杂,可以简化您的日常管理工作。

您可以在 Java 驱动程序中对 DB 类的对象使用以下方法执行相同操作:

CommandResult command(DBObject cmd, int options, ReadPreference readPrefs, DBEncoder encoder) 执行数据库命令。

CommandResult command(String cmd, int options) 执行数据库命令。

因此不需要为命令构造DBObject,只需传递字符串:"isMaster"。预测 CommandResult 对象并按照您的意愿进行操作。

【讨论】:

    猜你喜欢
    • 2013-07-22
    • 1970-01-01
    • 2013-07-03
    • 2016-03-13
    • 2018-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多