01.MongoDB 기초 - MongoDB 다루기

ID짱재·2021년 2월 22일
0

MongoDB

목록 보기
2/8
post-thumbnail

🌈 MongoDB 다루기

🔥 Robomongo 설치 및 설정

🔥 Robomongo로 MongoDB 다루기

🔥 Robomongo에서 shell 입력해보기


1. Robomongo 설치 및 설정

  • Robomongo는 MongoDB를 다루는 GUI 툴이기 때문에 눈으로보면서 이해도를 높히기 좋음

1) Robomongo 설치

2) Robomongo 세팅

  • 1단계 : 터미널에서 mongodb 실행(👉🏻 brew services start mongodb-community)
  • 2단계 : Robmomongo 실행(아무것도 없는게 정상)
  • 3단계 : Robomongo에서 create 클릭 후 localhost로 설정되어있는지 확인
  • 4단계 : 특별한 문제 없으면, save 저장 후 오른쪽 아래 Connect 클릭

2. Robomongo로 MongoDB 다루기

1) database 생성

  • connect로 생성된 "studymongodb"에 오른쪽 클릭으로 "Create Database"를 선택한 뒤, Database 이름 입력하면 database 생성됨
  • "System"과 "config"는 자동으로 생성되어 있는 MongoDB의 DB임
  • 아래 그림은 mydata라는 이름으로 DATABASE를 생선한 결과임
  • Database 삭제는 해당 데이터베이스 오른쪽 클릭해서 Drop 선택하면 삭제됨

2) collection 만들기

  • collection은 MySQL에서 table과 비슷한 기능을 하지만, RDBMS처럼 스키마의 규격이 없음
  • 생성된 DATABASE인 mydb를 클릭하면 "Collection", "Function", "Users"이 자동으로 생성되 있음
  • "Function"과 "Users"는 생성된 DABASE의 설정을 다루는 곳임
  • collection을 생성하는 방법은 "Collection"을 오른쪽 클릭한 뒤, "Create Collection"으로 생성
  • 아래 그림은 "mycollection"이라는 이름으로 collection을 생선한 결과임
  • collection 삭제 또한 생성과 같이 오른쪽 클릭하여 GUI방식으로 손쉽게 제거 가능

3) 데이터 입력

  • 생성된 collection인 "mycollection"을 오른쪽 클릭해 "Insert Document"로 들어가면 아래와 같은 화면이 나타남
  • 이 화면은 데이터를 입력하는 창으로 JSON형식으로 데이터를 입력한 뒤, 저장하면 데이터를 삽입시킴
  • 생성된 데이터를 확인하는 방법은 collection을 오른쪽 클린한 뒤, "View Documents"를 클릭하면 볼 수 있음
  • "_id"값을 제외하고는 모두 입력한 데이터로 Type까지 자동으로 지정됨
  • "_id"값은 데이터가 삽입 될 때마다 자동으로 생성되는 고유 식별값임
  • Insert를 통해 계속 값을 추가할 수도 있고, KEY값은 데이터마다 자유롭게 지정 할 수 있음
  • 또한 Robomongo는 MySQL Workbench보다 친절하게 명령어 구문을 자동으로 보여줌

3. Robomongo에서 shell 입력해보기

  • shell에서 입력하는 방법은 추후 python을 통해 MongoDB를 다룰 때 사용됨
  • MongoDB의 shell 명령어는 SQL문과 유사함
  • MongoDB가 connect 되어있는 최상단("studymongodb")를 오른쪽 클릭해서 "Open Shell" 클릭하면 Shell 명령어를 입력할 수 있는 창("New shell 탭")이 활성화됨

1) 데이터베이스 모두 조회 : show dbs

  • 🔍 show dbs 를 입력한 뒤 ▶️버튼을 누르면 아래와 같이 실행됨
  • "mydb"는 방금 생성한 DATABASE이며, 나머지는 robomongo 설정과 관련된 DB임

2) 데이터베이스 선택(지정) : use [데이터베이스 이름]

  • 🔍 use mydb 입력한 뒤 ▶️버튼을 누르면 아래와 같이 실행됨
  • 콜렉션을 조회하거나 다루기 위해서는 어떤 DB를 제어할 것인지 선택 후 가능

3) 컬렉션 모두 조회 : show [컬렉션 이름]

  • 🔍 show collections 입력한 뒤 ▶️버튼을 누르면 아래와 같이 실행됨
  • 현재 지정된 DB("mydb")에 존재하는 모든 컬렉션들을 반환함

4) 컬렉션 내 데이터 모두 조회 : db.[컬렉션 이름].find()

  • 🔍 db.mycollection.find() ▶️버튼을 누르면 아래와 같이 실행됨
  • 여기서 db는 위에서 선택된 데이터베이스 의미하며, 컬렉션을 지정해준 뒤 find() 메소드를 실행하면됨
  • GUI를 이용하여 "View Document"를 클릭한 것과 같음
  • find() 메소드에는 인자를 받을 수 있으며, 비워두면 저장된 모든 데이터를 출력

5) 데이터베이스의 통계 정보 조회 : db.stats()

  • 🔍 db.stats() ▶️버튼을 누르면 아래와 같이 실행됨
  • 데이터베이스에 대한 정보들을 종합적으로 보여줌

6) collection 생성 : db.createCollection("[콜렉션 이름]", {capped:true, size:10000})

  • 🔍 db.createCollection("employees", {capped:true, size:10000}) ▶️(실행)
  • 맨 앞에 db가 있다는 것은 위에서 설명한 것과 같이 "DB를 지정하였다."는 뜻이므로 DB를 먼저 지정 후 콜렉션 생성을 할 수 있음
  • {}안에 들어가는 것은 컬렉션의 옵션으로 size는 db의 크기이고, capped는 최초 제한된 크기로 생성된 공간에서만 데이터를 저장한다는 설정임
  • 이러한 옵션을 지정하는 것은 데이터가 입력할 때마다 size가 늘어나면 저장공간 관리에 따른 속도 지연이 발생하기 때문에 옵션을 통해 콜렉션의 성능을 향상시킬 수 있음
  • 콜렉션을 생성한 후 바로 나타나지 않기 때문에 DATABASE를 오른쪽 클릭한 뒤 Refresh 해줘야 확인됨

7) 컬렉션 이름 변경 : db.[컬렉션 이름].renameCollection("변경할 이름")

  • 🔍 db.employees.renameCollection("emp") ▶️(실행)

8) 컬렉션 삭제 : db.[컬렉션 이름].drop()

  • 🔍 db.emp.drop() ▶️(실행)
profile
Keep Going, Keep Coding!

0개의 댓글