카테고리 없음

MongoDB - DB와 Collection 생성 삭제

skypainter 2020. 8. 20. 21:20

목차

    MongoDB의 용어

    구체적인 내용을 서술하기에 앞서, 먼저 MongoDB의 논리적 구조에 사용되는 용어들을 알아둘 필요가 있습니다.

    (1) Document
    Documet란 MongoDB에 저장된 하나의 record라고 보시면 됩니다. 또한 MongoDB에 저장되는 데이터의 기본 단위입니다. Document는 아래처럼 JSON과 유사한 구조를 가지며, field: value 의 쌍들로 이루어져 있습니다.

    {
      name: "Sam",
      Student Number: 20001,
      major: ["Economics", "Statistics"]
    }

    Document는 텍스트 그대로 저장되는 것이 아니라 BSON (binary representation of JSON) 으로 DB에 저장됩니다.

    (2) Collection
    Document의 집합체입니다. 이는 RDBMS에서의 Table과 같은 개념입니다.
    즉, Document가 모여 하나의 Collection을 이루고, Collection들이 하나의 DB를 이루게 되는 구조입니다.

     

    각 용어를 관계형 Database에서 사용하는 용어와 대응시키면 다음과 같습니다.

    RBMS          MongoDB

    Table          Collection
    Row           Document
    Column       Field

    (Ex)

    2. DB 생성

    다음은 현재 MongoDB에 존재하는 데이터베이스를 확인하는 명령어입니다.

    show dbs

    처음 설치하고 이 명령어를 실행하셨다면 admin, config, local 세 가지의 DB만 나타날겁니다.

    이제 다음의 명령어를 입력해봅시다.

    use test1

    만약 test1이라는 데이터베이스가 이미 존재한다면 use 명령어를 통해 test1 데이터베이스로 이동할 수 있습니다.
    만약 test1 데이터베이스가 존재하지 않는다면, 첫 collection을 생성할 때 자동으로 test1 데이터베이스가 생성됩니다.

    Collection이 생성되었는지 아래의 명령어로 확인해봅시다.

    show collections

    student Collection이 잘 만들어졌네요.

    아래의 명령어를 입력하면 현재 내가 이용하고 있는 데이터베이스의 상태를 확인할 수 있습니다.

    db.stats()

    Collection 생성

    Collection은 크게 두 가지 형태로 생성할 수 있습니다. 첫 번째 형태는 Non Capped Collection으로, 공간이 허용하는 만큼 데이터를 계속 저장할 수 있습니다. 두 번째 형태는 Capped Collection으로, 최초에 설정한 크기에 한에서 데이터를 저장할 수 있습니다. 만약 최초에 설정한 공간을 초과하게 되면, 처음에 저장되었던 데이터를 삭제하여 공간을 재사용합니다.

    Collection 생성 명령어는 다음과 같습니다.

    db.createCollection("student", {capped: true, size: 10000})

    이 명령어는 student라는 이름의 Capped Collection을 생성하며, 초기에 설정된 제한용량은 10000 바이트입니다.
    Non Capped Collection을 생성하고 싶으시면 {capped:true, size: 10000}는 빼고 명령어를 입력하시면 됩니다.

    아래는 Collection의 상태를 확인하는 명령어입니다.

    db.student.stats()

    다음은 Collection을 삭제하는 명령어입니다.

    db.student.drop()

    삭제 명령어는 항상 주의해서 사용합시다!!

    DB 삭제

    다음은 DB 삭제 명령어입니다. (데이터 분석하는 제 입장에서 거의 쓸 일은 거의 없지만...)
    DB를 삭제하기 위해서는 먼저 해당 DB로 이동하신 뒤에, db.dropDatabase() 명령어를 입력해주시면 됩니다.

    소중한 데이터가 전부 날아가버릴 수도 있기 때문에 신중에 신중을 가해서 사용합시다 ㄷㄷㄷ

    다음에는 기본적인 Insert, update, remove 명령어에 대해서 포스팅하겠습니다.