【问题标题】:Connection to non existing mongodb server does not throw exception连接到不存在的 mongodb 服务器不会引发异常
【发布时间】:2014-07-07 17:50:48
【问题描述】:

我正在使用 Java 的 MongoDB 驱动程序。所以我只是创建了一个简单的应用程序来连接到 MongoDB 服务器并选择一个数据库。
所以我创建了一个MongoClient 的实例并选择了一个'DB':

try
{
    MongoClient client = new MongoClient("localhost", 27017);
    DB database = client.getDB("example");
}catch(Exception e){
    e.printStackTrace();
}

由于我的机器上没有mongod 的运行实例,我预计client 会抛出Exception。不幸的是,事实并非如此。
即使选择数据库也没有任何反应。它的行为就像有一个正在运行的 mongod 实例一样。

我查看了有关 Java 驱动程序的文档,但找不到任何相关信息。与 Google 相同。
有什么我错过的吗?

我使用的是官网最新的MongoDB驱动(2.12.2版)。

【问题讨论】:

    标签: java mongodb mongodb-java


    【解决方案1】:

    这是预期的行为。驱动程序在需要之前不会尝试连接到数据库。如果您尝试使用 mongo shell,如果数据库不存在,您不会收到错误消息。

    当您尝试将文档插入到不存在的集合中时,它会自动为您创建,并且是在延迟建立连接时。当您实际执行某些数据库操作(find()insert() 等)时,首先会检查连接。

    【讨论】:

    • 感谢你们 naimdjon 和 @evanchooly。我只是想知道这种行为,因为如果出现问题,我习惯于获取异常^^
    【解决方案2】:

    尝试对集合进行插入。连接被延迟初始化和验证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多