Получите версии Mongo со всех узлов реплики с помощью драйвера Java - PullRequest
0 голосов
/ 07 января 2019

Можно ли получить версии всех узлов в реплике, где узлы имеют разные версии, установленные с одним и тем же MongoClient?

Создание MongoClient для репликации следующим образом:

MongoClient mongoClient = new MongoClient(
   Arrays.asList(new ServerAddress("host1", 27017),
     new ServerAddress("host2", 27017),
     new ServerAddress("host3", 27017)));

Это даст MongoClient, что я могу выполнить команду, чтобы получить версию:

db.version

Но это не даст версию на всех разных узлах.

Возможно ли вместо этого просмотреть все версии узлов или требуется соединение с каждым и всеми для получения определенной версии на экземпляре mongo? Как это:

foreach (String host : hosts){
  MongoClient client = new MongoClient(host);
  String version = client.getDatabase("dbname")
    .runCommand(new BsonDocument("buildinfo", new BsonString("")))
    .get("version")
    .toString();
  client.close();
}
...