如何从驱动程序检查,如果mongoDB服务器正在运行

2022-09-02 23:14:50

我想知道,是否有办法检查mongoDB服务器是否从mongoDB的java驱动程序运行?

根据教程,我可以做

Mongo m = new Mongo();
// or
Mongo m = new Mongo( "localhost" , 27017 );
// and
DB db = m.getDB( "mydb" );

但是如何检查我是否可以使用这些Mongo和DB?我在API中没有看到isConnected()方法。

db.getConnector().isOpen() 

返回 true

我发现的唯一方法是调用db.getDatabaseNames()并捕获MongoException。

如果有更文明的方法?


答案 1

您可以运行 ping 命令

 Mongo mongo = new Mongo();
 DBObject ping = new BasicDBObject("ping", "1");
 try {
       mongo.getDB("dbname").command(ping);
 } catch (MongoException e) {
       ...
 }

答案 2

我发现这比ping命令更直接:

Mongo mongo = new Mongo();
try {
  mongo.getConnector().getDBPortPool(mongo.getAddress()).get().ensureOpen();
} catch (Exception e) {
  ...
}