본문 바로가기

Back-end/MongoDB

MongoDB Overview

반응형

이 글은 전공 "빅데이터시스템" 강의 내용을 정리한 글입니다.

MongoDB

하나의 Collection이 여러 document를 보관할 수 있는 Document Database

Relationship of RDBMS terminology with MongoDB

RDBMS MongoDB
Database Database
Table Collection
Tuple/Row Document
column field
Table Join Embedded Documents
Primary Key Primary Key(Defalut Ket _id provded by mongodb it self)
Mysqld/Oracle mongod
mysql/sqlplus mongo

RDBMS에서는 3개의 테이블이 필요하지만, MongoDB에서는 하나의 Collection에 하나의 document로 표현이 가능하다.


Embedded document

MongoDB Components

Database

  • Database는 collection들에 대한 물리적인 container

  • Create Database 명령어

      use DATABASE_NAME
    • database가 이미 있다면, 기존 database를 반환하고, 없으면 생성한다.
  • 지금 선택된 database를 확인하기 위한 명령어

      db
  • database list를 보는 명령어

      show dbs
    • 비어있는 database는 보여주지 않는다.
  • Drop database 명령어

      db.dropDatabase()
    • 지금 선택된 database를 제거한다.

Collection

  • Create collection

      db.createCollection(name, options)
    • name: 만들어지는 collection의 이름
    • options: collection의 memory size와 indexing에 관한 옵션(Opional)
  • 만들어진 collection확인 명령어

      show collections
  • document를 insert하면 collection을 자동으로 만들어 준다.

      db.anothercollection.insert({name: “NEW DOCUMNET”})
    • anothercollection이라는 collection이 없어도 자동으로 만들어준다.
  • Capped collection

db.createCollection(”COLLECTION_NAME”, {capped: true, size: 10000, max: 1000})
  • size - collection의 최대 사이즈(bytes)
  • max - collection의 최대 document 수

  • collection이 capped인지 아닌지 확인하는 명령어

      db.cappedLogCollection.isCapped()
  • 기존 콜렉션을 capped로 바꾸는 명령어

      db.runCommand({”converToCapped” : “collName”, size: 10000})
  • collection 삭제 방법

      db.COLLECTION_NAME.drop()

Document

  • Insert a document

      // 방법 1
      db.COLLECTION_NAME.insert(docuemnt)
      // 방법 2
      db.COLLECTION_NAME.insertOne(document)
  • insert multiple documents

      // 방법 1
      db.artists.insert(
          [
              {artistname: "The Kooks"},
              {artistname: "Bastille"},
              {artistname: "Gang of Four"}
          ]
      )
      // 방법 2
      db.artists.insertMany(
          [
              {artistname: "The Kooks"},
              {artistname: "Bastille"},
              {artistname: "Gang of Four"}
          ]
      )

SQL

INSERT INTO artists VALUES ("The Kooks");
  • Select all documents in a collection
db.artists.find()
// formatted way(예쁘게 나오게하는 법)
db.artists.find().pretty()

SQL

SELECT * FROM artists
반응형