使用Java驱动程序获取Mongo Instance的版本

fga*_*akk 6 java mongodb

正如标题所示,我想获得客户端连接的mongo实例的版本.目前我使用的是mongo java驱动程序2.9.3,而mongo实例是2.2.2.

我需要这个,为了支持$pushAll$push使用$each功能的,因为前者是从2.4版本赞成后者弃用.总之我想知道Java驱动程序的等价物db.version()

fga*_*akk 7

在未来版本的驱动程序提供方法之前,由于此处的提示,目前的解决方案正在跟进.

DB db = new Mongo("127.0.0.1").getDB("test");//Better use MongoClient since Mongo class is deprecated
System.out.println(db.getMongo().getVersion());//prints 2.9.3 driverversion
CommandResult commandResult = db.command("buildInfo");
System.out.println(commandResult.getString("version"));//prints 2.4.2 Note tried at home since my mongo version is 2.4.2
Run Code Online (Sandbox Code Playgroud)


Ser*_*sev 5

有点戳了一下,发现了这个:

> db.version()
2.4.6
> db.version
function (){
    return this.serverBuildInfo().version;
}
> db.serverBuildInfo
function (){
    return this._adminCommand( "buildinfo" );
}
> db.runCommand('buildinfo')
{
    "version" : "2.4.6",
    "gitVersion" : "b9925db5eac369d77a3a5f5d98a145eaaacd9673",
    "sysInfo" : "Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49",
    "loaderFlags" : "-fPIC -pthread -rdynamic",
    "compilerFlags" : "-Wnon-virtual-dtor -Woverloaded-virtual -fPIC -fno-strict-aliasing -ggdb -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch -Werror -pipe -fno-builtin-memcmp -O3",
    "allocator" : "tcmalloc",
    "versionArray" : [
        2,
        4,
        6,
        0
    ],
    "javascriptEngine" : "V8",
    "bits" : 64,
    "debug" : false,
    "maxBsonObjectSize" : 16777216,
    "ok" : 1
}
Run Code Online (Sandbox Code Playgroud)

所以你只需要runCommand在你的java代码中使用相当的东西(不知道java驱动程序,我是红宝石的家伙).