连接到不存在的mongodb服务器不会引发异常

时间:2014-07-07 17:50:49

标签: java mongodb mongodb-java

我正在玩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驱动程序的文档,但无法找到有关它的任何信息。与谷歌相同。
我错过了什么吗?

我使用官方网站上的最新MongoDB驱动程序(版本2.12.2)。

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:2)

尝试对集合执行插入操作。连接被懒惰地初始化和验证。