MongoDB에서 데이터베이스 목록을 확인할 때 주의해야 할 중요한 규칙이 있습니다. 바로 데이터베이스가 목록에 표시되려면 최소한 하나의 문서(document)가 저장되어 있어야 한다는 점입니다.
예를 들어, 데이터베이스를 생성만 하고 아무 문서도 추가하지 않았다면, 해당 데이터베이스는 데이터베이스 목록에 나타나지 않습니다.
1. 데이터베이스 생성하기
먼저 다음과 같은 쿼리로 새로운 데이터베이스를 생성합니다.
> use app; switched to db app
2. 데이터베이스 목록 확인하기
모든 데이터베이스를 표시하려면 다음 쿼리를 실행합니다.
> show dbs;
위 명령을 실행하면 아래와 같은 결과가 출력됩니다. 이때 새로 만든 "app" 데이터베이스는 아직 문서가 하나도 없기 때문에 목록에 보이지 않습니다.
admin 0.002GB business 0.000GB config 0.000GB local 0.000GB main 0.000GB my 0.001GB sample 0.003GB sampleDemo 0.000GB studentSearch 0.000GB test 0.022GB university 0.000GB web 0.001GB webcustomertracker 0.000GB
3. 컬렉션에 문서 삽입하기
이제 "app" 데이터베이스 안에 문서가 포함된 컬렉션을 생성해 보겠습니다.
> db.demo.insert({"StudentName":"Chris"});
WriteResult({ "nInserted" : 1 })insert() 메서드를 사용하면 지정한 컬렉션이 자동으로 생성되고, 문서가 함께 저장됩니다.
4. find() 메서드로 문서 조회하기
find() 메서드를 사용하여 컬렉션의 모든 문서를 확인할 수 있습니다.
> db.demo.find();
실행 결과는 다음과 같습니다.
{ "_id" : ObjectId("5e07250e25ddae1f53b62204"), "StudentName" : "Chris" }5. 다시 데이터베이스 목록 확인하기
문서를 추가한 후, 다시 한번 전체 데이터베이스 목록을 조회해 보겠습니다.
> show dbs;
이번에는 실행 결과에서 "app" 데이터베이스가 목록에 정상적으로 표시되는 것을 확인할 수 있습니다.
admin 0.002GB app 0.000GB business 0.000GB config 0.000GB local 0.000GB main 0.000GB my 0.001GB sample 0.003GB sampleDemo 0.000GB studentSearch 0.000GB test 0.022GB university 0.000GB web 0.001GB webcustomertracker 0.000GB
정리
MongoDB는 실제 데이터가 저장되기 전까지는 빈 데이터베이스를 물리적으로 생성하지 않습니다. 따라서 use 명령으로 데이터베이스를 생성하더라도, 최소 하나의 컬렉션에 문서를 삽입하기 전까지는 show dbs 명령의 결과에 해당 데이터베이스가 나타나지 않습니다. 이 점을 기억해 두면 데이터베이스가 사라진 것처럼 보일 때 혼란을 피할 수 있습니다.