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

MongoDB에서 데이터베이스와 컬렉션 목록 조회하는 방법 완벽 가이드

MongoDB를 사용하다 보면 서버에 존재하는 모든 데이터베이스의 목록이나 특정 데이터베이스에 속한 컬렉션 이름들을 확인해야 할 때가 있습니다. 이 글에서는 MongoDB 셸(mongo shell)에서 간단한 명령어만으로 이러한 정보를 조회하는 방법을 실제 실행 예제와 함께 자세히 알아보겠습니다.

1. 전체 데이터베이스 목록 조회하기

서버에 존재하는 모든 데이터베이스의 목록을 확인하려면 admin 데이터베이스로 전환한 후 listDatabases 명령어를 실행하면 됩니다.

use admin

db.runCommand({ listDatabases: 1 });

실행 예제

> use admin
switched to db admin

> db.runCommand({listDatabases: 1});

위 명령어를 실행하면 다음과 같은 결과가 출력됩니다. 각 데이터베이스의 이름(name), 디스크 사용량(sizeOnDisk), 비어 있는지 여부(empty)가 함께 표시됩니다.

{
    "databases" : [
        {
            "name" : "admin",
            "sizeOnDisk" : 1675264,
            "empty" : false
        },
        {
            "name" : "config",
            "sizeOnDisk" : 131072,
            "empty" : false
        },
        {
            "name" : "local",
            "sizeOnDisk" : 77824,
            "empty" : false
        },
        {
            "name" : "main",
            "sizeOnDisk" : 184320,
            "empty" : false
        },
        {
            "name" : "my",
            "sizeOnDisk" : 753664,
            "empty" : false
        },
        {
            "name" : "sample",
            "sizeOnDisk" : 1286144,
            "empty" : false
        },
        {
            "name" : "sampleDemo",
            "sizeOnDisk" : 352256,
            "empty" : false
        },
        {
            "name" : "studentSearch",
            "sizeOnDisk" : 262144,
            "empty" : false
        },
        {
            "name" : "test",
            "sizeOnDisk" : 15810560,
            "empty" : false
        },
        {
            "name" : "university",
            "sizeOnDisk" : 229376,
            "empty" : false
        },
        {
            "name" : "web",
            "sizeOnDisk" : 217088,
            "empty" : false
        }
    ],
    "totalSize" : 20979712,
    "ok" : 1
}

결과 하단의 totalSize 값은 모든 데이터베이스가 차지하는 총 디스크 크기(바이트 단위)를 의미합니다.

2. 특정 데이터베이스의 컬렉션 목록 조회하기

특정 데이터베이스에 포함된 컬렉션 이름들의 목록을 확인하려면 해당 데이터베이스로 전환한 후 getCollectionNames() 메서드를 호출하면 됩니다.

use yourDatabaseName;

db.getCollectionNames();

실행 예제

여기서는 sample이라는 데이터베이스의 컬렉션 목록을 조회해 보겠습니다.

> use sample;
switched to db sample

> db.getCollectionNames();

위 명령어를 실행하면 다음과 같이 해당 데이터베이스에 존재하는 모든 컬렉션 이름이 배열 형태로 출력됩니다.

[
    "arraySizeErrorDemo",
    "basicInformationDemo",
    "copyThisCollectionToSampleDatabaseDemo",
    "documentWithAParticularFieldValueDemo",
    "employee",
    "findListOfIdsDemo",
    "findMimimumElementInArrayDemo",
    "findSubstring",
    "getAllRecordsFromSourceCollectionDemo",
    "getElementWithMaxIdDemo",
    "insertDocumentWithDateDemo",
    "internalArraySizeDemo",
    "largestDocumentDemo",
    "makingStudentInformationClone",
    "nestedArrayDemo",
    "oppositeAddToSetDemo",
    "prettyDemo",
    "returnOnlyUniqueValuesDemo",
    "selectItemDemo",
    "selectWhereInDemo",
    "sourceCollection",
    "specificFieldDemo",
    "studentInformation",
    "sumOfValueDemo",
    "sumTwoFieldsDemo",
    "truncateDemo",
    "updateFieldIfValueIsGreaterDemo",
    "updateInformation",
    "userInformation"
]

마무리

지금까지 MongoDB 서버에서 데이터베이스 목록과 컬렉션 목록을 조회하는 두 가지 기본 명령어를 살펴보았습니다. 정리하면 다음과 같습니다.

  • 데이터베이스 목록 조회: db.runCommand({ listDatabases: 1 }) — admin 데이터베이스에서 실행
  • 컬렉션 목록 조회: db.getCollectionNames() — 대상 데이터베이스로 전환 후 실행

참고로 최신 MongoDB 버전(4.0 이상)에서는 show dbs 또는 show collections 명령어로도 동일한 정보를 더 간편하게 확인할 수 있으니, 상황에 맞게 활용하시기 바랍니다.