Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有Java驱动程序的MongoDB.getREplicationInfo()_Java_Mongodb_Groovy - Fatal编程技术网

带有Java驱动程序的MongoDB.getREplicationInfo()

带有Java驱动程序的MongoDB.getREplicationInfo(),java,mongodb,groovy,Java,Mongodb,Groovy,我正在尝试使用Java Mongodb驱动程序执行db.getReplicationInfo()请求。首先我看到 MongoClient mongoClient = new MongoClient(host, port) DB db = mongoClient.getDB( "admin" ) db.command("getReplicationInfo") 不起作用。回应是 { .."ok" : 0.0 , "errmsg" : "no such cmd: getReplicationInf

我正在尝试使用Java Mongodb驱动程序执行db.getReplicationInfo()请求。首先我看到

MongoClient mongoClient = new MongoClient(host, port)
DB db = mongoClient.getDB( "admin" )
db.command("getReplicationInfo")
不起作用。回应是

{ .."ok" : 0.0 , "errmsg" : "no such cmd: getReplicationInfo" , "bad cmd" : { "getReplicationInfo" : true}}
在蒙戈贝壳里

use admin
db.getREplicationInfo()
返回所需的数据

在我为其他Mongo驱动程序(Python或Ruby)读取到getReplicationInfo()命令未实现后,为了执行该命令,我必须编写自己的方法,以反映getReplicationInfo shell定义的代码(可查看运行db.getReplicationInfo而在shell中没有括号)

使用Java驱动程序是真的,还是有调用getReplicationInfo()命令的提示

如果我必须这样做,我不知道如何翻译

 if (db.system.namespaces.findOne({name:"local.oplog.rs"}) != null) {
    oplog = 'oplog.rs';
}
else if (db.system.namespaces.findOne({name:"local.oplog.$main"}) != null) {
    oplog = 'oplog.$main';
}
使用Java/Groovy和mongo驱动程序,有人能帮我吗?是否有人已经用Java编写了类似的函数


谢谢

“getReplicationInfo”不是一个数据库命令,它只是一个写在shell中的函数,可以在“系统”名称空间上运行一些查询。您只需直接在shell中键入
db.getReplicationInfo
,而不使用后面的括号
()
,就可以看到这一点。根据部分列表,看起来你已经有了。但是,在这里,要求某人将JavaScript翻译成Java代码不是一个有效的问题。不需要任何完整的翻译,只需要db.system.namespaces.findOne Java版本“system.namespaces”是集合的名称
.findOne()
作为查询方法。不需要翻译成Java。您的意思是
DBCollection collection=db.getCollection(“system.namespace”)
collection.findOne(新的BasicDBObject().put(“name”,“local.oplog.rs”)
collection.findOne(新的BasicDBObject().put(“name”,“local.oplog.$main”)
返回预期的文档?是的。但别忘了脚本的第一行也选择了“本地”数据库。老实说,我听到“但如何在Java中实现这一点”的次数确实让我震惊。除了构建DBObject成员,通常没有其他东西需要翻译。