我正在玩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)。
答案 0 :(得分:5)
这是预期的行为。在需要之前,驱动程序不会尝试连接到数据库。如果您尝试使用mongo shell,则在数据库不存在时不会收到错误。
当您尝试将文档插入到不存在的集合中时,它会自动为您创建,也就是说连接是懒惰建立的。首先,当您实际执行某些数据库操作(find()
,insert()
等)时,检查连接。
答案 1 :(得分:2)
尝试对集合执行插入操作。连接被懒惰地初始化和验证。