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

使用Java驱动程序获取Mongo实例的版本,java,mongodb,Java,Mongodb,正如标题所示,我希望获得客户端连接到的mongo实例的版本。目前我使用的是mongo java驱动程序2.9.3,mongo实例是2.2.2 我需要这样做,以支持$pushAll和$push的$each功能,因为前者从版本2.4中被弃用,取而代之的是后者。简言之,我想知道与db.version()相当的Java驱动程序,仔细研究一下就会发现: > db.version() 2.4.6 > db.version function (){ return this.serverBu

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


我需要这样做,以支持
$pushAll
$push
$each
功能,因为前者从版本2.4中被弃用,取而代之的是后者。简言之,我想知道与
db.version()

相当的Java驱动程序,仔细研究一下就会发现:

> 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
}

因此,您可以在java代码中使用相当于
runCommand
(不知道java驱动程序,我是ruby guy)。

在驱动程序的未来版本提供方法之前,由于来自的提示,当前的解决方案将遵循

这一个适合我(Java客户端3.5.0):

这就是我所做的:

    MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
    MongoDatabase db = mongoClient.getDatabase("test");
    Document document = db.runCommand(new Document("buildInfo",1));
    System.out.println("MongoDB Version: "+document.getString("version"));
我的配置

  • MongoDB JVM驱动程序:4.1
  • JDK 11

聪明,没想过
MongoClient client = //..
String version = client.getDatabase("dbname")
  .runCommand(new BsonDocument("buildinfo", new BsonString("")))
  .get("version")
  .toString();
    MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
    MongoDatabase db = mongoClient.getDatabase("test");
    Document document = db.runCommand(new Document("buildInfo",1));
    System.out.println("MongoDB Version: "+document.getString("version"));