java - 使用 Java Driver 询问 MongoDB host 是否为 Master

标签 java mongodb master-slave

<分区>

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

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

最佳答案

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

如果您进入 MongoDB Shell,并打印

db.isMaster(没有括号)

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

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

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

您可以在 Java 驱动程序中对 DB 类的对象执行以下方法:

CommandResult 命令(DBObject cmd、int options、ReadPreference readPrefs、DBEncoder 编码器) 执行数据库命令。

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

因此不需要为命令构造一个DBObject,只需要传递字符串:"isMaster"。预期 CommandResult 对象并按您的意愿继续。

关于java - 使用 Java Driver 询问 MongoDB host 是否为 Master,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18593555/

相关文章:

java - 为什么java中引用类型可以与对象类型不同

node.js - MongoDB:如何使用一个模式作为不同文件中定义的不同集合的子文档

java - Mac OS Java 7 小程序+智能卡问题

java - 如何为 Google App Engine Java 自定义日志记录?

使用 ssh 和 ssl 的 java mongodb 连接

node.js - 使用 NodeJS 查询 MongoDB 时出现问题

mysql - 在rails应用程序中使用activerecord处理MySQL故障转移(主/从角色切换)

Jenkins 总是按字母顺序选择奴隶

mysql - 如何让mysql master只写,slave只读

java - 如何在java中克隆或创建Map的新副本