2014-07-07 2 views
2

Java 용 MongoDB 드라이버로 조금 놀고 있습니다. 그래서 방금 MongoDB 서버에 연결하고 데이터베이스를 선택하는 간단한 애플리케이션을 만들었습니다.
그래서 나는 MongoClient의 인스턴스를 생성하고 'DB'를 선택 : 때문에 내 컴퓨터에 mongod 전혀 실행중인 인스턴스가 없다는 사실을 존재하지 않는 mongodb 서버에 연결하면 예외가 발생하지 않습니다.

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

, 나는 clientException를 던질 것으로 예상. 불행히도 그것은 사실이 아닙니다.
데이터베이스를 선택하더라도 아무 일도 일어나지 않습니다. 실행중인 mongod 인스턴스가있는 것처럼 작동합니다.

Java 드라이버에 대한 설명서를 살펴본 결과 아무 것도 없습니다. Google과 동일합니다.
놓친 것이 있습니까?

공식 웹 사이트에서 최신 MongoDB 드라이버 (버전 2.12.2)를 사용하고 있습니다.

답변

4

예상되는 동작입니다. 드라이버는 필요할 때까지 데이터베이스에 연결을 시도하지 않습니다. mongo 쉘을 사용하면 데이터베이스가 존재하지 않으면 오류가 발생하지 않습니다.

존재하지 않는 컬렉션에 문서를 삽입하려고하면 문서가 자동으로 생성되고 연결이 느리게 설정됩니다. 연결이 확인되는 db 작업 (find(), insert() 등)을 실제로 수행 할 때 가장 먼저 수행됩니다.

+0

naimdjon 및 @evanchooly 모두에게 감사드립니다. 나는 뭔가 잘못되면 예외를 얻는 데 익숙해 져서이 행동에 대해 궁금해했다. ^^ – TorbenJ

2

컬렉션에 삽입을 시도해보십시오. 연결은 지연 초기화되고 유효성이 검사됩니다.

관련 문제