Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

MongoDB 데이터베이스 존재 여부 확인하는 방법

MongoDB에서 특정 데이터베이스가 존재하는지 확인하는 방법은 크게 두 가지 결과로 나뉩니다. 인덱스 값을 반환받아 데이터베이스의 존재 여부를 손쉽게 판단할 수 있습니다.

확인 결과의 두 가지 경우

Case 1: 데이터베이스가 실제로 존재하는 경우입니다. 이때 해당 데이터베이스가 위치한 특정 인덱스 값이 반환됩니다.

Case 2: 데이터베이스가 존재하지 않는 경우입니다. 이때는 인덱스 값으로 -1이 반환됩니다.

참고: 인덱스는 배열과 마찬가지로 0부터 시작하여 (N-1)까지 이어집니다. 따라서 반환된 숫자가 곧 목록 내 데이터베이스의 위치를 의미합니다.

기본 문법

MongoDB 데이터베이스의 존재 여부를 확인하려면 다음 문법을 사용합니다.

db.getMongo().getDBNames().indexOf("yourDatabaseName");

getDBNames() 메서드는 현재 MongoDB 서버에 등록된 모든 데이터베이스 이름의 배열을 가져오고, indexOf() 메서드는 그중에서 원하는 데이터베이스 이름의 위치(인덱스)를 찾아줍니다.

Case 1: 데이터베이스가 존재하는 경우

위 문법을 실제로 적용해 보겠습니다. 다음은 "test"라는 데이터베이스가 존재하는지 확인하는 쿼리입니다.

db.getMongo().getDBNames().indexOf("test");

이 쿼리를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

6

출력 결과가 6이라는 것은 "test" 데이터베이스가 실제로 존재하며, 데이터베이스 목록에서 인덱스 6번째 위치에 있다는 의미입니다.

실제로 전체 데이터베이스 목록을 조회하여 확인해 보겠습니다. 다음 쿼리를 실행합니다.

> show dbs;

실행 결과는 다음과 같습니다.

admin              0.001GB
config             0.000GB
local              0.000GB
sample             0.001GB
sampleDemo         0.000GB
studentSearch      0.000GB
test               0.009GB

위 출력 결과를 보면 "test" 데이터베이스가 목록의 일곱 번째(인덱스 6)에 위치하고 있는 것을 확인할 수 있습니다. 이는 앞서 얻은 인덱스 값 6과 정확히 일치합니다.

Case 2: 데이터베이스가 존재하지 않는 경우

이번에는 존재하지 않는 데이터베이스를 조회해 보겠습니다. 다음은 "education"이라는 데이터베이스의 존재 여부를 확인하는 쿼리입니다.

> db.getMongo().getDBNames().indexOf("education");

"education" 데이터베이스가 존재하지 않기 때문에 다음과 같이 -1이 출력됩니다.

-1

정리

db.getMongo().getDBNames().indexOf() 명령어를 활용하면 별도의 복잡한 로직 없이도 반환되는 인덱스 값을 통해 데이터베이스의 존재 여부를 즉시 판별할 수 있습니다. 인덱스가 0 이상이면 데이터베이스가 존재하는 것이고, -1이면 존재하지 않는 것입니다.